ZigBee2-1 练习 定时器
理论部分: 无线传感网络 --ZigBee2-2定时器
2-1 定时器
要求:(1)在《2-1 定时器T1-查询方式》实验中使用查询方式检测定时器的溢出,在《2-2 定时器T3-中断方式》实验中使用中断方式检测定时器的溢出。请大家在《2-2 定时器T3-中断方式》的基础上,计算溢出时间,使得Led灯点亮和熄灭的保持时间为1秒。
原代码:
2-1 定时器T1-查询方式
/****************************************************************************
* 文 件 名: main.c
* 作 者: Andy
* 修 订: 2013-01-08
* 版 本: 1.0
* 描 述: 定时器T1通过查询方式控制LED1周期性闪烁
****************************************************************************/
#include <ioCC2530.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define LED1 P1_0 // P1.0口控制LED1
/****************************************************************************
* 名 称: InitLed()
* 功 能: 设置LED灯相应的IO口
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitLed(void)
{
P1DIR |= 0x01; //P1.0定义为输出
LED1 = 1; //使LED1灯上电默认为熄灭
}
/****************************************************************************
* 名 称: InitT1()
* 功 能: 定时器初始化,系统不配置工作时钟时默认是2分频,即16MHz
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitT1()
{
T1CTL = 0x0d; //128分频,自动重装 0x0000-0xFFFF
T1STAT= 0x21; //通道0,中断有效
}
/****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{
uchar count=0;
InitLed(); //调用初始化函数
InitT1();
whil