微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机定时器初始化不能用负号“-(1000/256)“写法

单片机定时器初始化不能用负号“-(1000/256)“写法

时间:11-24 来源:互联网 点击:
负号的写法是错误的。定时时间并不是从-A到0。

TMOD=0x01;

TH0=-(50000/256);

TL0=-(50000%256);

下面这样写才是对的:有的书上用的负号写法。误导我了!!

负号是错误的,并不相当于65536-A;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

用负号出错:

TH0=-(1000/256);

TL0=-(1000%256);

th0=TH0; //这里的结果是:253
tl0=TL0; //这里的结果是:24
sum=TH0*256+TL0;
//这里sum结果是 65021;

这个定时器0初始化就不是定时1000了。

正确写法:

TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
th0=TH0; //这里的结果是:252
tl0=TL0; //这里的结果是: 24
sum=TH0*256+TL0;
//这里sum结果是 64536;


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top