nrf24le1时钟频率为16MHZ,假设每次定时时间间隔是10ms
需要设置定时器的初值,用它来
设置THx, TLx寄存器,计算公式如下图,其他单片机可以以此类推
计算。
Keil uVision代码:
xdata unsigned int counter = 0;
void TimerInit(void)
{
TMOD = 0x01; // 方式1,16位计数器
EA = 1; //中断总开关(属IE:中断允许寄存器)
ET0 = 1; //允许定时器中断0中断(属IE:中断允许寄存器)
// 52203 CBEB 10ms
TH0 = 0xCB; //16位计数寄存器T0高8位
TL0 = 0xEB; //16位计数寄存器T0低8
TR0 = 1; //定时器0启动 (属TCON:Timer Control Register)
}
void TimerCounter_0 (void) interrupt 1 {
//用户函数内容
TH0 = 0xCB;
TL0 = 0xEB;
counter++;
if(counter ==100){ //10毫秒重复100次就是1秒
counter = 0; //重置
}
}
作者:帅得不敢出门 程序员群:31843264
阅读(4022) | 评论(0) | 转发(0) |