永发信息网

请问这段程序中timer_us = TH0*256+TL0是什么意思?这里的测距离修正是什么意思?

答案:2  悬赏:40  手机版
解决时间 2021-02-27 14:30
  • 提问者网友:姑娘长的好罪过
  • 2021-02-27 10:16
void init0int() interrupt 0
{
uint timer_us = 0;
TR0=0; //关闭定时器0
timer_us = TH0*256+TL0;
if(timer_us>190)timer_us=timer_us-180; //修正测距的距离

if(timer_us<=735)
{
timer_us=timer_us-96;//二次修正
}
if(timer_us>5059)
{
timer_us+=29;
}
if(timer_us>5470)
{
timer_us+=29;
}
if(timer_us>6410)
{
timer_us+=29;
}
if(timer_us>7410)
{
timer_us+=29;
}
if(timer_us>8410)
{
timer_us+=29;
}
if(timer_us>9410)
{
timer_us+=29;
}
if(timer_us>10410)
{
timer_us+=29;
}
length = ((unsigned long)(speed)*timer_us)/2000;//计算长度,是扩大1000倍
flag = 0;
EA = 0; //禁止所有中断
}
最佳答案
  • 五星知识达人网友:封刀令
  • 2021-02-27 10:41
timer_us = TH0*256+TL0是读取当前定时器的数值,测距离修正是对读到得time_us的值进行修正,具体什么功能要看你是怎么测的
全部回答
  • 1楼网友:轮獄道
  • 2021-02-27 11:20
看什么类型了 tl0够短就可以 要是长了就不能了 比如long .double什么的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯