1625-5 王子昂 总结《2017年7月31日》 【连续第302天总结】
A. ZigBee开发板基础-查询方式使用定时器
B. 使用T1定时器需要配置三个寄存器T1CTL,T1STAT,IRCON
T1CTL 定时器1的控制和状态
第2、3比特表示分频器划分值:00频率/1,01频率/8,10频率/32,11频率/128;
第0、1比特表示定时器1模式:00暂停运行、01自由运行、10模、11正计数/倒计数
其中自由运行范围为0~0xffff,模和正计数/倒计数的范围为0~T1CC0
T1STAT 定时器1状态
第0~4比特表示5个通道的中断标志,第5比特表示溢出中断标志
IRCON 中断标志4
第1比特表示定时器1中断标志;0:无中断未决,1:中断未决
void Delayms(uint xms)//延时xms毫秒
{
uint i,j;
for(i=xms;i>0;i--)
for(j=587;j>0;j--)
}
void InitT1()
{
T1CTL = 0x0d;//0000 1101 128分频,自动重装0~0xffff
T1STAT = 0x21;//0010 0001 通道0,中断有效
}
void main(void)
{
uchar count = 0;
InitLED();
InitT1();
while(1)
{
if(IRCON>0)
{
IRCON=0;
if(++count>=1)
{
count=0;
LED1=!LED;
}
}
}
}
本例中可以看出初始化定时器需要通过操作T1CTL和T1STAT两个寄存器,定时状态则通过IRCON来查看
默认情况下定时器的时频为2分频,即16MHZ
count的作用不明白,等到过两天板子入手了试验一下看看再回来修改
C.明日计划
协议栈基础/实习