打印

定时器初始化函数

[复制链接]
588|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
langgq|  楼主 | 2018-10-10 12:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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;
}
沙发
lium| | 2018-10-10 12:43 | 只看该作者
lz没看错吧!定时器0方式1的有16位  肯定会给低八位赋值的啊!应该是低八位也会对256取余

使用特权

评论回复
板凳
langgq|  楼主 | 2018-10-10 12:47 | 只看该作者
开发板带的例程,可以编译,下到板子上,可以实现功能,没看错!

使用特权

评论回复
地板
hanwe| | 2018-10-10 12:50 | 只看该作者
有说要那么精确吗

使用特权

评论回复
5
yufe| | 2018-10-10 12:54 | 只看该作者
你想问什么呀  没看到问题呀

使用特权

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

使用特权

评论回复
7
lium| | 2018-10-10 13:21 | 只看该作者
655536-46075=19461=0x4C05,差5个机器周期!

使用特权

评论回复
8
guoyt| | 2018-10-10 13:24 | 只看该作者

就差5个机器周期  所以程序你看不出来呀
可能人家不用这么精确呢
关键还得看需求

使用特权

评论回复
9
langgq|  楼主 | 2018-10-10 13:29 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

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

本版积分规则

932

主题

8762

帖子

1

粉丝