ARM学习笔记---中断
扫描二维码
随时随地手机看文章
中断优先级由高到低
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)