打印

定时器初始化函数

[复制链接]
1519|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小猫咪|  楼主 | 2015-8-18 19:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void init()
{
  TMOD=0x01;        //工作方式1
  TH0=0x4c;                //0x4c=(76)D  应该是赋初值    TH0=(655536-46075)/256=76.0195
  TL0=0x00;                //为什么给TL0赋0x00???
  EA=1;                        //开总中断
  ET0=1;                //开定时器0中断
  TR0=1;                //启动定时器
  counter=0;
  h=12;m=0;s=0;                //赋初值
  dispbuf[2]=10;
  dispbuf[5]=10;
}
沙发
kangzj| | 2015-8-18 19:40 | 只看该作者
lz没看错吧!定时器0方式1的有16位  肯定会给低八位赋值的啊!应该是低八位也会对256取余

使用特权

评论回复
板凳
小小猫咪|  楼主 | 2015-8-18 19:40 | 只看该作者
开发板带的例程,可以编译,下到板子上,可以实现功能,没看错!

使用特权

评论回复
地板
zwll| | 2015-8-18 19:40 | 只看该作者
有说要那么精确吗

使用特权

评论回复
5
chuxh| | 2015-8-18 19:41 | 只看该作者
你想问什么呀  没看到问题呀

使用特权

评论回复
6
juventus9554| | 2015-8-18 19:41 | 只看该作者
定时器就像秒表一样,该进位的时候就进位,而这个进位就是你设置的参数的意义。都赋值0而且模式为16位的话就是每65535进位一次。具体时间由晶振和机器周期决定。

使用特权

评论回复
7
司徒老鹰| | 2015-8-18 19:41 | 只看该作者
655536-46075=19461=0x4C05,差5个机器周期!

使用特权

评论回复
8
llljh| | 2015-8-18 19:41 | 只看该作者
就差5个机器周期  所以程序你看不出来呀
可能人家不用这么精确呢
关键还得看需求

使用特权

评论回复
9
小小猫咪|  楼主 | 2015-8-18 19:42 | 只看该作者
哦,我知道了,多谢啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

313

主题

3014

帖子

6

粉丝