通往无线桥梁 无线世界先锋
do{
T2IRQM = 0x04; EA = 1; T2IE = 1; T2MSEL |= 0xf4; }while(0)
\\ \\ \\ \\ \\
设定溢出周期
#define SET_TIMER2_CAP_COUNTER(val) SET_WORD(T2M1,T2M0,val)
功能:将无符号整形数 val 的高 8 位写入 T2CAPLPL,低 8 位写入 T2CAPHPH。 启动 T2
#define TIMER2_RUN() T2CTRL|=0X01
停止 T2
#define TIMER2_STOP() do{T2CTRL&=0XFE;}while(0)
1.2.3CC2530 基础实验 6:T3 使用
实验介绍
用定时器 3 来改变小灯的状态,T3 每发生 200 次中断小灯改变状态一次。 实验相关寄存器
实验中操作了的寄存器有 P1,P1SEL,P1DIR,T3CTL,T3CCTL0,T3CC0,T3CCTL1,T3CC1, 等寄存器。
P1 参见 CC2530 实验 1 P1SEL 参见 CC2530 实验 1
P1DIR 参见 CC2530 实验 1 T3CTL(T3 控制寄存器) 位号 7:5 位名 DIV[2:0] 复位值 000 操作性 读/写 功能描述 定时器时钟再分频数(对 CLKCONCMD.TICKSPD 分频后再次分频) 000:不再分频 001:2 分频 010:4 分频 011:8 分频 100:16 分频 101:32 分频 110:64 分频 111:128 分频 4 START 0 读/写 T3 起停位 成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com
028-86786586 86615004
86617556(传真)
通往无线桥梁 无线世界先锋
3 2 1:0 OVFIM CLR MODE[1:0] 1 0 00 读/写 读/写 读/写 0 暂停计数,1 正常运行 溢出中断掩码 0 关溢出中断,1 开溢出中断 清计数值,写 1 使 T3CNT=0x00 T3 模式选择 00:自动重装 01:DOWN (从 T3CC0 到 0x00 计数一次) 10:模计数 (反复从 0x00 到 T3CC0 计数) 11:UP/DOWN(反复从 0x00 到 T3CC0 再到 0x00)
T3CCTL0 (T3 通道 0 捕获/比较控制寄存器)
位号 7 6 5:3 位名 - IM CMP[7:0] 复位值 0 1 000 操作性 读 读/写 读/写 预留 通道 0 中断掩码 0 关中断,1 开中断 功能描述 通道 0 比较输出模式选择,指定计数值过 T3CC0 时 的发生事件 000 输出置 1(发生比较时),001 输出清 0(发生比 较时),010 输出翻转, 011 输出置 1(发生上比较时)输出清 0(计数值为 0 或 UP/DOWN 模式下发生下比较), 100 输出清 0(发生上比较时)输出置 1(计数值为 0 或 UP/DOWN 模式下发生下比较), 101 输出置 1(发生比较时)输出清 0(计数值为 0xff 时), 110 输出清 0(发生比较时)输出置 1(计数值为 0x00 时),111 预留。 2 1:0 MODE- CAP 0 00 读/写 读/写 T3 通道 0 模式选择 0 捕获,1 比较 T3 通道 0 捕获模式选择 00 没有捕获 01 上升沿捕获 10 下降沿捕获 11 边沿捕获
T3CC0 (T3 通道 0 捕获/比较值寄存器) 位号 7:0 位名 VAL[7:0] 复位值 0x00 86617556(传真)
操作性 读/写 功能描述 T3 通道 0 比较/捕获值 成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com
028-86786586 86615004
通往无线桥梁 无线世界先锋
T3CCTL1 (T3 通道 1 捕获/比较控制寄存器)
位号 7 6 5:3 位名 - IM CMP[7:0] 复位值 0 1 0 操作性 读 读/写 读/写 预留 功能描述 通道 1 中断掩码 0 关中断,1 开中断 通道 1 比较输出模式选择,指定计数值 过 T3CC0 时的发生事件 000 输出置 1(发生比较时) 001 输出清 0(发生比较时) 010 输出翻转 011 输出置 1(发生上比较时)输出清 0 (计数值为 0 或 UP/DOWN 模式下发生 下比较) 100 输出清 0(发生上比较时)输出置 1 (计数值为 0 或 UP/DOWN 模式下发生 下比较) 101 输出置 1(发生比较时)输出清 0 (计数值为 0xff 时) 110 输出清 0(发生比较时)输出置 1(计 数值为 0x00 时) 111 预留 2 1:0 MODE- CAP 0 0000 读/写 读/写 T3 通道 1 模式选择 0 捕获,1 比较 T3 通道 1 捕获模式选择 00 没有捕获 01 上升沿捕获 10 下降沿捕获 11 边沿捕获
T3CC1 (T3 通道 1 捕获/比较值寄存器) 位号 7:0 位名 VAL[7:0] 复位值 0x00 操作性 读/写 功能描述 T3 通道 1 比较/捕获值
实验相关函数
void Init_T3_AND_LED(void);函数原型:
void Init_T3_AND_LED(void)
{
成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com
028-86786586 86615004
86617556(传真)
通往无线桥梁 无线世界先锋
P1DIR = 0X03; RLED = 1; YLED = 1; TIMER34_INIT(3); //时钟 32 分频 101
//初始化 T3
TIMER34_ENABLE_OVERFLOW_INT(3,1); //开 T3 中断
TIMER3_SET_CLOCK_DIVIDE(16); TIMER3_SET_MODE(T3_MODE_FREE); TIMER3_START(1);
//启动
//自动重装 00->0xff
};
函数功能:将 I/0 P10,P11 设置为输出去控制 LED,将 T3 设置为自动重装模式,定时器时钟 16 分频,并启动 T3。
void T3_ISR(void);函数原型:
#pragma vector = T3_VECTOR interrupt void T3_ISR(void) {
//IRCON = 0x00;
//清中断标志,硬件自动完成
if(counter<200)counter++; //10 次中断 LED 闪烁一轮
else
{
counter = 0; RLED = !RLED;
//计数清零
//改变小灯的状态
}
}
函数功能:这是一个中断服务程序,每 200 次中断改变一次红色 LED 的状态。
重要的宏定义 开
启溢出中断
#define TIMER34_ENABLE_OVERFLOW_INT(timer,val) \\
do{T##timer##CTL = (val) ? T##timer##CTL | 0x08 : T##timer##CTL & ~0x08; \\ EA = 1; T3IE = 1; }while(0)
\\ \\
功能:打开 T3 的溢出中断。 复位 T3 相关寄存器
#define TIMER34_INIT(timer) do {
T##timer##CTL
\\ \\
= 0x06; \\ //比较模式
T##timer##CCTL0 = 0x00; \\
028-86786586 86615004
成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com
86617556(传真)
通往无线桥梁 无线世界先锋
T##timer##CC0 = 0x00; \\
T##timer##CCTL1 = 0x00; \\ T##timer##CC1 } while (0)
= 0x00; \\
功能:将 T3 相关的寄存器复位到 0 控制 T3 起停
#define TIMER3_START(val)
(T3CTL = (val) ? T3CTL | 0X10 : T3CTL&~0X10)
\\
功能:val 为 1,T3 正常运行,val 为 0,T3 停止计数 设置 T3 工作方式
#define TIMER3_SET_MODE(val)
\\
\\ \\
do{
T3CTL &= ~0X03;
(val==1)?(T3CTL|=0X01): /*DOWN (val==2)?(T3CTL|=0X02): /*Modulo (val==3)?(T3CTL|=0X03): /*UP / DOWN (T3CTL|=0X00);
*/ \\ */ \\ */ \\ \\
/*free runing */
}while(0)
#define T3_MODE_FREE #define T3_MODE_DOWN
0X00 0X01
#define T3_MODE_MODULO 0X02 #define T3_MODE_UP_DOWN 0X03
功能:根据 val 的值将 T3 设置为不同模式,一共 4 种模式。
1.2.4CC2530 基础实验 7:T4 使用
实验介绍
用定时器 4 来改变小灯的状态,T4 每发生 200 次中断小灯改变状态一次。 实验相关寄存器
实验中操作了的寄存器有 P1,P1SEL,P1DIR,T4CTL,T4CCTL0,T4CC0,T4CCTL1,T4CC1 等寄存器。
P1 参见 CC2530 实验 1。 P1SEL 参见 CC2530 实验 1。 P1DIR 参见 CC2530 实验 1。
T4CTL(T4 控制寄存器)
位号 7:5 位名 DIV[2:0] 复位值 000 操作性 读/写 功能描述 定 时 器 时 钟 再 分 频 数 ( 对 028-86786586 86615004
成都无线龙通讯科技有限公司 http://www.c51rf.com http://www.rfmcu.cn c51rf@126.com
86617556(传真)