TI CC2530 学习笔记-7-NewBit-CC2530-Interrupt-定时器中断

TI CC2530 学习笔记-目录

TI CC2530 学习笔记-7-NewBit-CC2530-Interrupt-定时器中断

设置CC2530定时器4每1ms中断一次,在中断里对溢出进行计数,当计数达到1000次(1秒)时小灯状态改变。

  1. 配置定时器和LED
halMcuWaitUs(10000);  //等待时间稳定,约10ms
  CLKCONCMD &= ~0x47;   //选择外部32MHZ时钟, 不分频
                        //TICKSPD不改变,保持为0x01,即定时器标记频率为16MHz
  while( (CLKCONSTA & 0x47) != 0x00 ); //切换时钟源后再次等待稳定
  P0DIR |= 0x40;  //配置IO为输出
  T4CTL = 0xE2;   //128分频(0.125Mhz),8us模模式
  T4CCTL0 = 0x04; //比较模式
  T4CC0 = 125;    //溢出值 125*8us = 1000us = 1ms
  LED_R_IO = LED_R_ACTIVE;
  
  gT_count = 0;
  
  T4CTL |= 0x08; //打开溢出中断
  T4CCTL0 |= 0x40;//开T4通道0中断
  IEN1 |= 0x10;   //开T4中断
  IEN0 |= 0X80;   //开总中断
  T4CTL |= 0x10;  //启动T4
  1. 在main函数的while循环等待中断发生
while(1)
  {
    //等待中断发生
  }
  1. 中断程序
#pragma vector = T4_VECTOR
 __interrupt void T4_ISR(void)
 {
   IRCON = 0x00;			//可不清中断标志,硬件自动完成
   gT_count++;
   if (gT_count >= 1000)
   {
     gT_count = 0;
     LED_R_IO = !LED_R_IO; //翻转LED
   }
 }

代码:NewBit-ZDK CC2530 基础例程

你可能感兴趣的:(CC2530)