打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
cc2530手册翻译(中断)
1、中断源
CC2530的CPU有18个中断源,每个中断源都有它自己的位于一系列SFR寄存器中的中断请求标志。每个中断请求都需要中断使能位来使能或禁止,具体定义如下表:
表1
Interrupt Number
中断号
Description
描述
Interrupt Name
中断名称
Interrupt Vector
中断向量
Interrupt Mask,CPU
中断屏蔽
Interrupt Flag, CPU
中断标志
0
RF TX FIFO underflow and RX FIFO overflow
射频发送队列空和接收队列溢出
RFERR
03h
IEN0.RFERRIE
TCON.RFERRIF (1)
1
ADC end of conversion
ADC转换完成
ADC
0Bh
IEN0.ADCIE
TCON.ADCIF (1)
2
USART 0 RX complete
串口0接收完毕
URX0
13h
IEN0.URX0IE
TCON.URX0IF (1)
3
USART 1 RX complete
串口1接收完毕
URX1
1Bh
IEN0.URX1IE
TCON.URX1IF (1)
4
AES encryption/decryption complete
AES加/解密完成
ENC
23h
IEN0.ENCIE
S0CON.ENCIF
5
Sleep Timer compare
睡眠定时器比较
ST
2Bh
IEN0.STIE
IRCON.STIF
6
Port 2 inputs/USB
端口2输入/USB
P2INT
33h
IEN2.P2IE
IRCON2.P2IF (2)
7
USART 0 TX complete
串口0发送完毕
UTX0
3Bh
IEN2.UTX0IE
IRCON2.UTX0IF
8
DMA transfer complete
DMA发送完成
DMA
43h
IEN1.DMAIE
IRCON.DMAIF
9
Timer 1 (16-bit) capture/compare/overflow
定时器1(16位)捕获/比较/溢出
T1
4Bh
IEN1.T1IE
IRCON.T1IF (1) (2)
10
Timer 2
定时器2(MAC定时器)
T2
53h
IEN1.T2IE
IRCON.T2IF (1) (2)
11
Timer 3 (8-bit) compare/overflow
定时器3(8位)比较/溢出
T3
5Bh
IEN1.T3IE
IRCON.T3IF (1) (2)
12
Timer 4 (8-bit) compare/overflow
定时器4(8位)比较/溢出
T4
63h
IEN1.T4IE
IRCON.T4IF (1) (2)
13
Port 0 inputs
端口0输入
P0INT
6Bh
IEN1.P0IE
IRCON.P0IF (2)
14
USART 1 TX complete
串口1发送完毕
UTX1
73h
IEN2.UTX1IE
IRCON2.UTX1IF
15
Port 1 inputs
端口1输入
P1INT
7Bh
IEN2.P1IE
IRCON2.P1IF (2)
16
RF general interrupts
RF通用中断
RF
83h
IEN2.RFIE
S1CON.RFIF (2)
17
Watchdog overflow in timer mode
看门狗计时溢出
WDT
8Bh
IEN2.WDTIE
IRCON2.WDTIF
(1) Hardware-cleared when interrupt service routine is called(当中断服务例程被调用后,硬件清除标志位)
(2) Additioal IRQ mask and IRQ flag bits exist.(附加中断屏蔽和中断标志位存在)
2、中断屏蔽
每个中断通过IEN0、IEN1、IEN2里的相应中断使能位来禁止或启用,具体如下表。
中断使能寄存器(IEN0,IEN1,IEN2)(0:中断禁止  1:中断使能)
表2
端口
Bit位
名称
初始化
读/写
描述
IEN0
7
EA
0
R/W
禁止所有中断
0:无中断被确认。
1:通过设置对应的使能位,将每个中断源分别使能或禁止。
6
0
R0
不使用,读取为0值
5
STIE
0
R/W
睡眠定时器中断使能
4
ENCIE
0
R/W
AES加解密中断使能
3
URX1IE
0
R/W
串口1接收中断使能
2
URX0IE
0
R/W
串口0接收中断使能
1
ADCIE
0
R/W
ADC中断使能
0
RFERRIE
0
R/W
RF接收/发送队列中断使能
IEN1
7:6
00
R0
不使用,读取为0值
5
P0IE
0
R/W
端口0中断使能
4
T4IE
0
R/W
定时器4中断使能
3
T3IE
0
R/W
定时器3中断使能
2
T2IE
0
R/W
定时器2中断使能
1
T1IE
0
R/W
定时器1中断使能
0
DMAIE
0
R/W
DMA传输中断使能
IEN2
7:6
00
R0
不使用,读取为0值
5
WDTIE
0
R/W
看门狗中断使能
4
P1IE
0
R/W
端口1中断使能
3
UTX1IE
0
R/W
串口1中断使能
2
UTX0IE
0
R/W
串口0中断使能
1
P2IE
0
R/W
端口2中断使能
0
RFIE
0
R/W
RF通用中断使能
注意某些外部设备会因为若干事件产生中断请求。这些中断请求可以作用在端口0、端口1、端口2、定时器1、定时器2、定时器3、定时器4或者无线上。这些外部设备在相应的寄存器里都有一个内部中断源的中断屏蔽位。
为了启用中断,需要以下步骤:
(1)清除中断标志位(Clear interrupt flags);
(2)如果有,则设置SFR寄存器中对应的各中断使能位;
(3)设置寄存器IEN0、IEN1和IEN2中对应的中断使能位为1;
(4)设置全局中断位IEN0.EA为1;
(5)在该中断对应的向量地址上,运行该中断的服务程序。
下图给出了所有中断源及其相关的控制和状态寄存器的概述图;当中断服务程序被执行后,阴影框的中断标志位将被硬件自动清除;
3、中断处理
当中断发生时,CPU就指向表1所描述的中断向量地址。一旦中断服务开始,就只能够被更高优先级的中断打断。中断服务程序由指令RETI终止,当执行RETI后,CPU将返回到中断发生时的下一条指令。
当中断发生时,不管该中断使能或禁止,CPU都会在中断标志寄存器中设置中断标志位。当中断使能时,首先设置中断标志,然后在下一个指令周期,由硬件强行产生一个LCALL到对应的向量地址,运行中断服务程序。
新中断的响应,取决于该中断发生时CPU的状态。当CPU正在运行的中断服务程序,其优先级大于或等于新的中断时,新的中断暂不运行,直至新的中断的优先级高于正在运行的中断服务程序。中断响应的时间取决于当前的指令,最快的为7个机器指令周期,其中1个机器指令周期用于检测中断,其余6个用来执行LCALL。
中断标志
寄存器
Bit位
名称
初始化
读/写
描述
TCON
7
URX1IF
0
R/W
H0
USART 1 RX中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
6
0
R/W
不使用
5
ADCIF
0
R/W
H0
ADC中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
4
0
R/W
不使用
3
URX0IF
0
R/W
H0
USART 0 RX中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
2
IT1
1
R/W
保留。必须一直设1。
1
RFERRIF
0
R/W
H0
RF TX/RX FIFO中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
0
IT0
1
R/W
保留。必须一直设1。
S0CON
7:2
000000
R/W
不使用
1
ENCIF_1
0
R/W
AES中断。ENC有两个中断标志位,ENCIF_1和ENCIF_0。设置其中一个标志就好请求中断服务。当AES协处理器请求中断时,两个标志都有设置。
0:无中断未决
1:中断未决
0
ENCIF_0
0
R/W
AES中断。ENC有两个中断标志位,ENCIF_1和ENCIF_0。设置其中一个标志就好请求中断服务。当AES协处理器请求中断时,两个标志都有设置。
0:无中断未决
1:中断未决
S1CON
7:2
000000
R/W
不使用
1
RFIF_1
0
R/W
RF一般中断。RF有两个中断标志,RFIF_1和RFIF_0,设置其中一个标志就会请求中断服务。当无线电请求中断时两个标志都有设置。
0:无中断未决
1:中断未决
0
RFIF_0
0
R/W
RF一般中断。RF有两个中断标志,RFIF_1和RFIF_0,设置其中一个标志就会请求中断服务。当无线电请求中断时两个标志都有设置。
0:无中断未决
1:中断未决
IRCON
7
STIF
0
R/W
睡眠定时器中断标志位
0:无中断未决
1:中断未决
6
--
0
R/W
必须一直设0。
5
P0IF
0
R/W
端口0中断标志
0:无中断未决
1:中断未决
4
T4IF
0
R/W
H0
定时器4中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
3
T3IF
0
R/W
H0
定时器3中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
2
T2IF
0
R/W
H0
定时器2中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
1
T1IF
0
R/W
H0
定时器1中断标志。当中断发生时设1,当CPU向量指向中断服务例程时清0。
0:无中断未决
1:中断未决
0
DMAIF
0
R/W
DMA完成中断标志
0:无中断未决
1:中断未决
IRCON2
7:5
000
R/W
不使用
4
WDTIF
0
R/W
看门狗定时器中断标志
0:无中断未决
1:中断未决
3
P1IF
0
R/W
端口1中断标志
0:无中断未决
1:中断未决
2
UTX1IF
0
R/W
USART 1 TX中断标志
0:无中断未决
1:中断未决
1
UTX0IF
0
R/W
USART 0 TX中断标志
0:无中断未决
1:中断未决
0
P2IF
0
R/W
端口2中断标志
0:无中断未决
1:中断未决
4、中断优先级
中断可划分为6个中断优先组,每组的优先级通过设置寄存器IP0和IP1来实现。为了给中断(也就是它所在的中断优先组)赋值优先级,需要设置IP0和IP1的对应位。
表4-1
端口
Bit位
名称
初始化
读/写
描述
IP1
7:6
--
00
R/W
没使用
5
IP1_IPG5
0
R/W
中断第5组,优先级控制位1,参考表4-3
4
IP1_IPG4
0
R/W
中断第4组,优先级控制位1,参考表4-3
3
IP1_IPG3
0
R/W
中断第3组,优先级控制位1,参考表4-3
2
IP1_IPG2
0
R/W
中断第2组,优先级控制位1,参考表4-3
1
IP1_IPG1
0
R/W
中断第1组,优先级控制位1,参考表4-3
0
IP1_IPG0
0
R/W
中断第0组,优先级控制位1,参考表4-3
IP0
7:6
--
00
R/W
没使用
5
IP0_IPG5
0
R/W
中断第5组,优先级控制位0,参考表4-3
4
IP0_IPG4
0
R/W
中断第4组,优先级控制位0,参考表4-3
3
IP0_IPG3
0
R/W
中断第3组,优先级控制位0,参考表4-3
2
IP0_IPG2
0
R/W
中断第2组,优先级控制位0,参考表4-3
1
IP0_IPG1
0
R/W
中断第1组,优先级控制位0,参考表4-3
0
IP0_IPG0
0
R/W
中断第0组,优先级控制位0,参考表4-3
表4-2 优先级设置
IP1_X
IP0_X
优先级
0
0
0 – 最低级别
0
1
1
1
0
2
1
1
3 – 最高级别
中断优先级及其赋值的中断源显示在表4-3中,每组赋值为4个中断优先级之一。当进行中断服务请求时,不允许被同级或较低级别的中断打断。
表4-3 中断优先组
中断
IPG0
PEERR
RF
DMA
IPG1
ADC
T1
P2INT
IPG2
URX0
T2
UTX0
IPG3
URX1
T3
UTX1
IPG4
ENC
T4
P1INT
IPG5
ST
P0INT
WDT
当同时收到几个相同优先级的中断请求时,采用表4-4所列的轮流检测顺序来判定哪个中断优先响应。
表4-4中断轮流检测顺序
中断向量编号
中断名称
0
RFERR
轮流检测顺序
16
RF
8
DMA
1
ADC
9
T1
2
URX0
10
T2
3
URX1
11
T3
4
ENC
12
T4
5
ST
13
P0INT
6
P2INT
7
UTX0
14
UTX1
15
P1INT
17
WDT
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CC2530中常用的控制寄存器
zigbee基础应用(五)uart串口通信
VoLTE优化实战手册(史上最强)
msp430 学习经验总结
第5章 中断系统
单片机定时器实用方法总结 (1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服