Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4510670
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: 其他平台

2015-05-05 13:44:04

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
阅读(4011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~