TI CC2530 学习笔记-3-NewBit-CC2530-Timer1-查询方式
这里学习定时器1的查询方式,通过CC2530定时器1来实现周期溢出,用此信号来控制LED灯,每秒改变状态一次。
- 配置定时器和LED
halMcuWaitUs(10000); //等待时间稳定,约10ms
CLKCONCMD &= ~0x47; //选择外部32MHZ时钟, 不分频,TICKSPD不改变,保持为0x01,即定时器标记频率为16MHz
while( (CLKCONSTA & 0x47) != 0x00 ); //切换时钟源后再次等待稳定
P0DIR |= 0x40; //配置IO为输出
//每25000个时钟计数一次,每次8us,共200000us = 200ms
T1CC0H = UPPER_BYTE(25000); //设置比较值高位,
T1CC0L = LOWER_BYTE(25000); ///设置比较值低位,
T1CCTL0 |= 0x04;//设为比较模式
T1CTL = 0x0E; //定时器1时钟分频128(0.125MHZ),8us,采用模计数方式
LED_R_IO = LED_R_ACTIVE;//点亮LED
- 在main函数的while循环里检测定时器溢出标志位
t_count = 0;
while(1)
{
if (T1IF == 1)//判断是否溢出
{
T1STAT = 0;//清除溢出标志
T1IF = 0;//清楚中断标志
t_count++;
if (t_count > 5) //每5次溢出,时间约为1秒
{
t_count = 0;//清零
LED_R_IO = !LED_R_IO;//翻转LED
}
}
}