请问老农,你的教材好像有点问题。

[复制链接]
2716|8
 楼主| emailli 发表于 2007-8-23 09:05 | 显示全部楼层 |阅读模式
/*********************************************************************/
在SysTimer.h文件中有这样一个定义

#define T0PRELOAD_22M 144L

1、敢问144L是什么意思?

/*********************************************************************/
16为定时器的高位预装值你是这样计算的
sInSysTimer.sT0_PreLoad = (~mPreLoad) + 1;  //T0高位预装值

2、可是高位预装值应该是要取高八位。我这里实在很难看出怎么取的高八位。

/*********************************************************************/
还请不吝赐教!


谢谢!
computer00 发表于 2007-8-23 09:09 | 显示全部楼层

144L表示这个数是long int型的...

 楼主| emailli 发表于 2007-8-23 09:31 | 显示全部楼层

哦。明白了。可以编译。

但是时间常数的计算好像不对啊。
hotpower 发表于 2007-8-24 03:54 | 显示全部楼层

取反加一是取负数~~~(A人都知道~~~)

因为51的timer都是+1器.

sInSysTimer.sT0_PreLoad = (~mPreLoad) + 1;  //T0高位预装值

实际为:

sInSysTimer.sT0_PreLoad = 0 - mPreLoad;  //T0高位预装值

这是所长在诱导呀~~~
 楼主| emailli 发表于 2007-8-24 08:07 | 显示全部楼层

我知道是负数

我问的是 本来是要高八位的值。

你取反加一以后截取的还是低八位的值啊!

不成还有自动转换的时候是截取高八位的用法?

抑或是经过取反加一以后截取低八位的值就和 直接截取高八位的值一样?
lixun00 发表于 2007-8-24 08:07 | 显示全部楼层

呵呵。。。应该相信所长是酒精考验的战士

xzhenggen 发表于 2007-8-24 08:07 | 显示全部楼层

取反加一是取负数??

如果X=0xff;则~X+1=0x01;为啥是负数?真晕!
yewuyi 发表于 2007-8-24 08:24 | 显示全部楼层

-(-1)

popmu 发表于 2007-8-24 08:41 | 显示全部楼层

受教了:)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

98

主题

1172

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部