cc2530定时器1,128分频,500ms串口打印一次Ok并控制led1秒闪烁
时间: 2023-07-19 12:04:53 浏览: 115
单片机 311-用定时器T0的中断控制1位LED闪烁(C语言).rar
好的,以下是cc2530定时器1,128分频,500ms串口打印一次Ok并控制led1秒闪烁的代码:
```c
#include "ioCC2530.h"
#define LED P0_0
void initTimer1(void);
void timer1ISR(void);
volatile unsigned int timer1Count = 0;
void main(void)
{
// 初始化端口
P0SEL &= ~0x01; // P0_0设为通用IO口
P0DIR |= 0x01; // P0_0设为输出
LED = 0;
// 初始化定时器1
initTimer1();
// 打开总中断
EA = 1;
while (1);
}
void initTimer1(void)
{
// 设置定时器1的分频为128
T1CTL |= 0x0C;
// 设置定时器1的计数值,使其在500ms后溢出
T1CC0L = 0x8F;
T1CC0H = 0x13;
// 使能定时器1溢出中断
T1IE = 1;
// 启动定时器1
T1CTL |= 0x02;
}
#pragma vector=T1_VECTOR
__interrupt void timer1ISR(void)
{
// 清除定时器1溢出中断标志
T1IF = 0;
// 计数器加1
timer1Count++;
// 如果计数器达到2,即1秒,控制LED闪烁
if (timer1Count == 2) {
LED = !LED;
timer1Count = 0;
}
// 打印Ok
printf("Ok\n");
}
```
需要注意的是,这段代码中使用了printf函数来打印字符串,因此需要在程序中包含stdio.h头文件,并且需要在工程的属性设置中将Printf Target设为"UART0",并设置波特率为9600。
阅读全文