CC2530的中断系统和定时器原理

  • 格式:ppt
  • 大小:2.32 MB
  • 文档页数:24

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

当同时收到几个相同优先级的中断请求时, 采取如同表 28 所列的轮流探测顺序来判定哪个中断优先响应 。
CC2530定时中断代码例程
• •
• • • • • • • •
void InitialT1test(void)
{ //初始化LED控制端口P1 P1DIR = 0x03; //P10 P11 为输出 P0DIR = 0x10; //P04为输出 LED1 = 1; LED2 = 1; LED3 = 1; //初始化计数器1
#include <ioCC2530.h>
#define uint unsigned int #define uchar unsigned char #define LED1 P1_0 #define LED2 P1_1 #define LED3 P0_4 uint counter=0; //统计溢出次数 uint LEDFlag; //标志是否要闪烁
fosc=6MHZ 时,1机周=2S。
STC89C51
• 启动重新赋值:清零
中断系统
日常生活中中断的例子:
你正在专心看书,突 然电话铃响,于是你记下正 在看的书的页数,去接电话, 接完电话后再回来接着看书。
计算机中的中断概念:
CPU正在执行程序时,单片机外部或内部发生的某 一事件,请求CPU迅速去处理。CPU暂时中止当前
中断标志寄存器4
中断标志寄存器5
中断优先级
• 中断组合成为 6 个中断优先组,每组的优先级通过设置 寄存器 IP0 和 IP1 实现。为了给中断(也就是它所在的 中断优先组)赋值优先级,需要设置 IP0 和 IP1 的对应 位,如表 2-6 所示。。
中断优先级及其赋值的中断源显示在表 2-7 中。每组赋值 为 4 个中断优先级之一。当进行中断服务请求时 ,不允许 被较低级别或同级的中断打断。
的工作,转到中断服务处理程序处理所发生的事
继续原来的工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。 对事件的整个处理过程,称为中断处理(或中断 服务)。
件。处理完该事件后,再回到原来被中止的地方,
CPU处理事件的过程,称为CPU的中断响应过程。
对事件的整个处理过程,称为中断处理(或中断服务)。 将能引起中断的事件称为中断源。

• • • • • • • • • • •
while(1) //查询溢出
{ if(IRCON > 0) { IRCON = 0; //清溢出标志 counter++; if(counter==15) //中断计数, 约0.25s { counter =0; LEDFlag = !LEDFlag; } }
• • • • • • • •
void InitialT1test(void); //初始化函数声 明

• •
T1CTL = 0x05;
T1STAT= 0x21; //通道0,中断有 效,8分频;自动重装模式(0x0000->0xffff) }

• •
void main()
{ InitialT1test(); //调用初始化函 数
• 中断的响应需要不同的时间,取决于该中断发生时 CPU
的状态。
中断响应时间
• 中断的响应需要不同的时间,取决于该中断发生时 CPU 的状态。当 CPU 正在运行的中断服务程序,其优 • 先级大于或等于新的中断时,新的中断暂不运行,直至新 的中断的优先级高于正在运行的中断服务程序。在其 • 他情况下,中断响应的时间取决于当前的指令,最快响应 一个中断的时间是 7 个机器指令周期,其中 1 个机器 • 指令周期用于探测中断,其余 6 个用来执行 LCALL。
• • • • • • • • •
if(LEDFlag) { LED2 = LED1; LED3 = !LED2; LED1 = !LED1; // 每 1s LED灯闪烁一下 LEDFlag = !LEDFlag; // 闪 烁标志变量置0 } } }
片内定时器T0的溢出
片内定时器T1的溢出 片内串行口发送或接收中断源
用。
每个中断请求可以通过设置中断使能 SFR 寄存器的中 断使能位 IEN0 , IEN1 或者 IEN2 使能或禁止。 注意某些外部设备有若干事件,可以产生与外设相关的 中断请求。这些中断请求可以作用在端口 0 、端口 1 、 端口 2 、定时器 1 、定时器 2 、定时器 3 、定时器 4 和无线电上。对于每个内部中断源对应的 SFR 寄存 器,这些外部设备都有中断屏蔽位。
工作方式的设置:
STC89C51
M1M0
00 01 10 11
CC2530
功能
13位计数器 16位计数器
工作 方式
方式0 方式1 方式2 方式3
两个8位计数器,初值 自动装入 两个8位计数器,仅适 用T0
STC89C51
计算定时/计数初值 89C51定时/计数初值计算公式:
CC2530
初始化
其中: N与工作方式有关: 方式0时,N=13; 方式1时,N=16; 方式2、3时,N=8。 机周时间与主振频率有关:机周时间=12/fosc fosc=12MHZ时,1机周=1S;
CC2530的中断系统 和定时器的定时原 理
CC2530及STC89C51芯片对比
STC89C51 • 定时器个数:2 • 工作模式: • 计数器工作模式 定时器工作模式 CC2530 • 定时器个数:4 • 工作模式: • 自由运行模式 模模式 正计数/倒计数模式 通道模式控制 输入捕获模式 输出比较模式
使能中断步骤: 1 清除中断标志。 2 如果有,则设置 SFR 寄存器中对应的各中断使能位为 1 3 设置寄存器 IEN0 、 IEN1 和 IEN2 中对应的中断使能
位为1
4 设置 IEN0 中的 EA 位为 1 使能全局中断。 5 在该中断对应的向量地址上,运行该中断的服务程序。
中断使能寄存器0
Байду номын сангаас
• 工作方式:4种工作方式( 方式0-方式3)
STC89C51 • 工作方式的设置:
高4位控制T1 低4位控制T0 门 计数/ 工作 门 计数/ 工作 控 定时 方式 控 定时 方式 位 方式选 选择 位 方式选 选择 择 择
G C / T M M G 1 0 C / T M M 1 0
CC2530
CPU现行运行的程序称为主程序。
处理随机事件的程序称为中断服务子程序。
STC89C51
中断源个数:5个
外部输入中断源INT0(P3.2) 外部输入中断源INT1(P3.3)
CC2530
CPU 有18个中断源。每个中
断源都有它自己的位于一系 列 SFR 寄存器中的中断请 求标志。相应标志位请求的 每个中断可以分别使能或禁
中断使能寄存器1
中断使能寄存器2
中断处理
• 当中断发生时,CPU 就指向中断向量地址。一旦中断服务 开始,就只能够被更高优先级的中断打断。中断服务程序 由中断指令 RETI终止,当 RETI 执行时,CPU 将返回到
中断发生时的下一条指令。
• 当中断发生时,不管该中断使能或禁止,CPU 都会在中断 标志寄存器中设置中断标志位。如果当设置中断标志时中 断使能,那么在下一个指令周期,由硬件强行产生一个 LCALL 到对应的向量地址,运行中断服务程序。