读取TH0,TL0的值的问题

[复制链接]
16313|27
16777216 发表于 2013-7-10 16:05 | 显示全部楼层
风溪香士 发表于 2013-4-29 16:20
明白了,确实是学业不精啊

楼主 我现在有一个问题
是这样的  你把time计算放在外中断里 我试了一下 也能计算出来
但如果我现在 外中断里面先设置的是标志位  flag=1
在主函数不断查询flag
当         flag=1; 则计算time 公式一样 ;flag=0
但这样做time 一直等于0
为什么

 楼主| 风溪香士 发表于 2013-8-9 14:29 | 显示全部楼层
16777216 发表于 2013-7-10 16:05
楼主 我现在有一个问题
是这样的  你把time计算放在外中断里 我试了一下 也能计算出来
但如果我现在 外 ...

会不会是退出中断时,把TH0和TL0清零了?你把程序贴出来看看。
16777216 发表于 2013-8-9 14:55 | 显示全部楼层
风溪香士 发表于 2013-8-9 14:29
会不会是退出中断时,把TH0和TL0清零了?你把程序贴出来看看。

忘记当时是怎么解决的啦 哈哈
ayb_ice 发表于 2013-8-9 15:13 | 显示全部楼层
这个要飞读才行的

U8 high,low;

        for(;;){
                high = TH0;
                low = TL0;
                if(high == TH0){
                        break;
                }
        }
 楼主| 风溪香士 发表于 2013-8-14 20:28 | 显示全部楼层
ayb_ice 发表于 2013-8-9 15:13
这个要飞读才行的

U8 high,low;

什么是飞读啊,不太理解。
xiugai1 发表于 2017-5-20 15:54 | 显示全部楼层
真的不懂啊啊
weiyg8051 发表于 2017-5-22 17:28 | 显示全部楼层
zuanze 发表于 2012-8-30 09:53
我觉得使用time=256*TH0+TL0;一次提取TH0,TL0的值

而使用其他的方式,当提取TL0的时候,值已经发生很大的 ...

看着是一句,实际执行好几句。中间进位了就错了
weiyg8051 发表于 2017-5-22 17:30 | 显示全部楼层
weiyg8051 发表于 2017-5-22 17:28
看着是一句,实际执行好几句。中间进位了就错了

先读高位,再读低位,再读一次高位,如果2次读的高位相同,就用这个数了。如果高位不同,用第二次的高位,低位直接置0就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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