SHT10测量过程的耗时怎么处理,用定时器中断可以实现么?

2020-01-26 12:55发布

我用点阵屏做了个电子钟,用SHT10实现温湿度显示。但是sht10的测量过程需要耗时300ms,如果一直等待测量完成,点阵屏就会出现闪烁。不知道SHT10的这段测量时间可不可以用定时器定时中断检测来实现呢?我自己试了一个定时器中断,但是没成功。不知道大家在处理SHT10的这段测量时间是怎么做的?有用中断实现的么?谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
kebaojun305
1楼-- · 2020-01-26 18:48
使用状态机就可以
hameyou
2楼-- · 2020-01-26 21:27
是的,使用状态机
cxning
3楼-- · 2020-01-27 00:20
 精彩回答 2  元偷偷看……
csliu911
4楼-- · 2020-01-27 02:41
kebaojun305 发表于 2013-9-28 14:19
使用状态机就可以

能说的再详细点么,我有点无从下手
Q-Phil
5楼-- · 2020-01-27 05:32
专业学过软件工程的人都知道“有限状态机”的设计方法。
简单的说,主程序是一个循环,依次处理“各项事务”,比如数据采样、输出显示、动作响应等等。
原则是没项事务都不可耗时过长,即不可以用“delay_ms"、"wait”之类的指令,以保证主循环周期不要太长。
PLC就是用的这种方法,主循环周期应该不超过10ms,现在的cpu都很快,没问题的。

剩下是各个事务如何拆分了。
简单任务就不用说了,读到一个开关量就点亮一盏灯,瞬间的事情,咋编都行;
长周期的事务,比如说访问SHT1x,根据流程定义出几个状态,记在一个状态变量里,每次处理时根据状态只做一件事(如发送测温指令),然后修改到下一个状态,立即返回。
下次再来处理时,根据状态做相应的事(如查看转换是否完成,若完成则立即读取结果-改状态-返回,否则不改状态立即返回)
所以有限状态机的设计就是:
画一张图,定义状态,定义各状态间的转移顺序,定义状态转移的条件,不要有死状态......

用熟了,就很容易作出简单可靠、性能稳定的程序了。
单片机编程人员必须会的一种方法!
csliu911
6楼-- · 2020-01-27 07:56
Q-Phil 发表于 2013-10-10 14:31
专业学过软件工程的人都知道“有限状态机”的设计方法。
简单的说,主程序是一个循环,依次处理“各项事务 ...

十分感谢.....

一周热门 更多>