搜索
bottom↓
回复: 6

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

[复制链接]

出0入0汤圆

发表于 2013-9-28 13:50:24 | 显示全部楼层 |阅读模式
我用点阵屏做了个电子钟,用SHT10实现温湿度显示。但是sht10的测量过程需要耗时300ms,如果一直等待测量完成,点阵屏就会出现闪烁。不知道SHT10的这段测量时间可不可以用定时器定时中断检测来实现呢?我自己试了一个定时器中断,但是没成功。不知道大家在处理SHT10的这段测量时间是怎么做的?有用中断实现的么?谢谢了

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入8汤圆

发表于 2013-9-28 14:19:46 | 显示全部楼层
使用状态机就可以

出0入0汤圆

发表于 2013-9-28 15:05:32 | 显示全部楼层
都可以。
要不显示用中断,要不采样用中断。
或者把耗时长那个程序插入几段显示程序。

出0入0汤圆

 楼主| 发表于 2013-9-28 15:59:59 | 显示全部楼层
kebaojun305 发表于 2013-9-28 14:19
使用状态机就可以

能说的再详细点么,我有点无从下手

出0入0汤圆

发表于 2013-10-10 14:31:26 | 显示全部楼层
专业学过软件工程的人都知道“有限状态机”的设计方法。
简单的说,主程序是一个循环,依次处理“各项事务”,比如数据采样、输出显示、动作响应等等。
原则是没项事务都不可耗时过长,即不可以用“delay_ms"、"wait”之类的指令,以保证主循环周期不要太长。
PLC就是用的这种方法,主循环周期应该不超过10ms,现在的cpu都很快,没问题的。

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

用熟了,就很容易作出简单可靠、性能稳定的程序了。
单片机编程人员必须会的一种方法!

出0入0汤圆

 楼主| 发表于 2013-10-16 16:32:44 | 显示全部楼层
Q-Phil 发表于 2013-10-10 14:31
专业学过软件工程的人都知道“有限状态机”的设计方法。
简单的说,主程序是一个循环,依次处理“各项事务 ...

十分感谢.....
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-6 19:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表