×
单片机 > 单片机程序设计 > 详情

ARM学习笔记---中断

发布时间:2020-06-02 发布时间:
|

中断优先级由高到低

51单片机:INT0(P3.2)、TIMER0、INT1(P3.3)、TIMER1、串口中断(P3.0、P3.1)

52单片机:TIMER2

外部中断下降沿触发

内部定时器:TMOD寄存器(M1M0)

M1 M0 方式

0 0 0 13位

0 1 1 16位

1 0 2 8 auto

1 1 3 两个8位


串口{RI->while(RI!)

TI->while(TI!)}


执行指令时中断来了,先执行完这条指令再处理中断.

单片机与外部进行信息交换的方式:轮询方式、中断方式、DMA


2451 53个中断源

程序初始地址:0x30000000

中断向量地址:0x00000000


中断模式:

IRQ:正常触发中断模式

FIQ:快速中断模式(紧急状况使用,优先级高)


寄存器:

SRCPND1 首标识寄存器,32位,对应中断被请求该位置为1,默认值为0

INTMSK 屏蔽寄存器,32位,对应中断被屏蔽该位置为1,默认为1

INTPND 尾标识寄存器,32位,和首标识寄存器内容一样

SUBSRCPND 子标识寄存器,32位,

INTSUBMSK 子屏蔽寄存器,32位,

PRIORITY 优先级寄存器,28位,

INTMOD 模式寄存器,32位,默认都置位0,0代表IRQ模式,1代表FIQ




(没有被屏蔽)->INTMODE(IRQ)->PRIORITY(10、12、28)->INTPND(10位置1)->INTOFFSET(置为10)->TIMR0 中断服务函数(ISR)->INTPND、SRCPND、SUBSRCPN

清第10 位的中断标识位



1.优先级顺序默认

2.都不屏蔽

3.IRQ模式


定时器中断:


51单片机:

时钟周期: 1/110592M = 1.09us, 1/12M

机械周期: 12*1.09us,

2个机械周期 = 1个节拍

指令周期 = 若干机械周期(>=1)




T0、 1、 16位 TH0(高8位); 加计数->65535 溢出

2^16 - 1 = 65535

12M 机械周期 1us

65.535ms


定时50ms

TH0 = (65535-50000)/256; //高8位

TL0 = (65535-50000)%256; //低8位



2451:

PWM:占空比 高电平所占时间


寄存器:

TCFG: 预分频寄存器,32位

TCON:定时器控制寄存器,22位

TCNTB: 计数寄存器

TCMPB: 比较寄存器

TCNTO: 观测TCNTB


简单定时器初始化步骤:

1、配置预分频系数(199)

2、配置分频系数(8)

3、配置计数初始值(41250)

4、配置为自动重载功能(TCON)

5、Update初值(TCON)

6、开启定时器(TCON)

7、清除bit(Update初值控制位)(TCON)


关键字:ARM  中断 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会