打印

问个关于定时器的问题

[复制链接]
1564|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dream1231|  楼主 | 2007-10-27 00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2007-10-27 07:56 | 只看该作者

书看少了

使用特权

评论回复
板凳
ayb_ice| | 2007-10-27 08:35 | 只看该作者

等于下面

   TH0=(65536-50000) / 256;
   TL0=(65536-50000) % 256;

使用特权

评论回复
地板
dream1231|  楼主 | 2007-10-27 10:06 | 只看该作者

问个关于定时器的问题

就是根据上面作出来是3CB0

但是用keil反汇编后是3DB0怎么回事?????

使用特权

评论回复
5
linqing171| | 2007-10-27 10:10 | 只看该作者

不应该啊。

莫非编译器是按照
 TH0=256-50000/ 256;
计算的?
这样就会少个1。
或者编译器看你是负的给你加一个?

问一句,你为什么要用负的?

使用特权

评论回复
6
dream1231|  楼主 | 2007-10-27 10:18 | 只看该作者

问个关于定时器的问题

用上面公式的结果如图:

计算结果应该是D80B才对啊???????

使用特权

评论回复
7
dream1231|  楼主 | 2007-10-27 10:21 | 只看该作者

问个关于定时器的问题

回复5楼:
那也不应该是TH0高位多个1?

使用特权

评论回复
8
dream1231|  楼主 | 2007-10-27 13:44 | 只看该作者

问个关于定时器的问题

??

使用特权

评论回复
9
沈老| | 2007-10-27 14:02 | 只看该作者

负数除正数=负数!

-50000/256=-195.3125;
195=C3;
负数在计算机内用补码表示:
-195的补码=C3的反码+1=3D !!!!
应该这样:
    TH0=-50000 >> 8;//0x3CB0
    TL0=-50000 & 0xFF;
或:
    TH0=((unsigned int)-50000)/256;//0x3CB0
    TL0=((unsigned int)-50000)%256;

使用特权

评论回复
10
dream1231|  楼主 | 2007-10-27 14:24 | 只看该作者

原来是符号数转换问题!!

Thank You!!!

使用特权

评论回复
11
ayb_ice| | 2007-10-27 15:12 | 只看该作者

我一般用减法而不用负数,所有没有问题。。。

等一下去验证一下。。。

使用特权

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

本版积分规则

1

主题

7

帖子

0

粉丝