所有课程见此链接:
4.5定时器实验
了解使用定时器的方法,定时切换LED的状态.
首先根据开发板硬件原理图确定LED与CC2530芯片的连接引脚,如图4-5所示。
图4-5开发板LED原理图
与4.1节相同, D3连接在芯片的P10引脚,按照4.1节点亮单个LED的说明,我们对P10配置为输出,配置寄存器将定时器1的中断使能与总中断打开,使用到的寄存器如表4-3所示:
表4-3定时器1寄存器说明
T1CTL |
位3:2 配置定时器值分频器划分值 |
TIMIF |
位6 位定时器1中断屏蔽位 |
IEN1(0XB8) |
位1为定时器1中断使能 |
T1STAT |
定时器1状态位 |
具体程序如下:
#include <ioCC2530.h>
#define LED1 P1_0
/****************************
//T1初始化程序
***************************/
void InitialT1test(void)
{
//初始化计数器1
T1CTL = 0x0D;
TIMIF = 0x40;
IEN1 = 0x02;
EA = 1; //总中断使能
T1STAT = 0; //清中断标志
}
/***************************
//主函数
***************************/
void main(void)
{
P1DIR = 0x01; //P1_0 定义为输出
LED1 = 1;
InitialT1test();
while (1) ;
}
//中断处理函数
#pragma vector = T1_VECTOR
__interrupt void T1_ISR(void)
{
if (T1STAT > 0) //按键中断
{
LED1 = ! LED1;
T1STAT = 0; //清中断标志
}
}
观察开发板,D3(LED1)周期性闪烁。