直接上代码,代码有详解
/*
本程序为定时器3倒计数模式中断方式
关于定时器总结:
模式为自由模式时,只需要常规设置寄存器即可;
模式为模模模式时,正/倒计数模式时,只需要添加设置T3CCTL0寄存器为比较模式即可
模式为倒计数模式时,由于倒计数到0x00时,硬件会关闭定时器,如果想要连续使用,
一定在中断或则溢出标记中重新打开定时器!
*/
#include <ioCC2540.h>
#define LED1 P1_0
int count = 0;
void init_led()
{
P1SEL &= ~(1 << 0);//set p1_0 as generic io
P1DIR |= (1 << 0); //set P1_0 as output
LED1 = 0x0; //set led1 off
}
void init_clock32MHZ()
{
CLKCONCMD &= ~(1 << 6);//set source system clcok 32MHZ
while(CLKCONSTA & 0x40);//wait source system clcok stable
CLKCONCMD &= ~((1 << 6) | (1 << 2 ) | (1 << 1) | (1 << 0));//设置主时钟为32MHZ
while(CLKCONSTA & 0x1);//wait main clcok stable
CLKCONCMD |= (6 << 3);//set TICKSPD = 500KHZ
//TICKSPD default = 16MHZ
}
void init_timer3()
{
//使用模模式,倒计数,正倒计数时,必须设置这个寄存器为比较模式
T3CCTL0 |= (1 << 2);
T3CTL |= (7 <&l