CC2530 的 T3 定时器主要是配置三个寄存T3CTL,T3CCTL0,T3CC0,T3CCTL1,T3CC1。具体功能查看手册
另外T3 定时器 是8 位的,中断方式。寄存器配置如下:
T3CTL |= 0x08 ; // 开溢出中断
T3IE = 1; // 开总中断和 3 T3 中断
T3CTL |=0XE0; 8 //128 分频 ,128/16000000*N=0.5S,N=65200
T3CTL &= ~0X03; // 自动重装 00 - >0xff 65200/256=254( 次) )
T3CTL |=0X10; // 启动
EA = 1; // 开总中断
/************************************** 程序描述:利用定时器 3 T3 中断方式控制 1 LED1 状态周期性改变 *********************************** ** ***/ … … // 定时器初始化 void InitT3() { T3CTL |= 0x08 ; // 开溢出中断 T3IE = 1; // 开总中断和 3 T3 中断 T3CTL|=0XE0; 8 //128 分 频 ,128/16000000*N=0.5S,N=65200 T3CTL &= ~0X03; // 自动重装 00 - >0xff 65200/256=254( 次) ) T3CTL |=0X10; // 启动 EA = 1; // 开总中断 } } /*************************** // 主函数 ***************************/ void main(void) { { InitLed(); // 调用初始化函数 InitT3(); while(1){ } } } } /************************************ 中断函数 ************************************/ #pragma vector = T3_VECTOR // 定时器 T3 __interrupt void T3_ISR(void) { IRCON = 0x00; // 清中断标志 , 也可由硬件自动完成 if(++count>254) 4 //254 次中断后 D LED 取反,闪烁一轮(约为 0.5 秒时间) { count = 0; // 计数清零 LED1=~LED1;} }
HG:
写的很清晰
Yue TANG:
good