搜索
bottom↓
回复: 5

请教马老师状态机实际操作问题

[复制链接]

出0入0汤圆

发表于 2012-11-27 22:54:08 | 显示全部楼层 |阅读模式
我现在做一个DS1302,18B20,12864的时钟。
现在各个子程序已经完成,单独用都正常,想做菜单。实际中遇到点问题
就是1820设置12位的时候需要800MS延时。我按键用的你的状态机。
我的理解是中断处理按键返回状态值,假设现在按下按键,当按键程序处理完成的时候返回按键是3应该进入下级菜单调时
可1820转换温度那800MS延时会导致按键程序完成了,还在跑这800MS延时(我按键时间感觉正常不会超过800MS)
导致无法进入下级菜单,请问是我思路有问题还是什么呢,没有1820按键反应很快,加上1820后按键要按很久才有反应,我觉得应该是这800MS的问题

另外想请教我看有的人写的1820没有这个800MS延时,可我的取消延时后不能使用呢?就算设置到300MS也不行,开机显示85度。

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-11-28 18:22:35 | 显示全部楼层
18B20是我N年前玩过的,具体操作规程现在一下子记不清楚了,但是要延时800ms好像不应该。
一般人从低层写代码控制18B20是做不到的,网上的参考基本上不能实用,或问题多多。
如果是实际产品研发,建议你用CVAVR,它里面有操作单总线的函数,也有具体例子(见HELP)。
如果是学习,建议你先仔细学习单总线的通信操作规程,自己练习写低层,正确的操作18B20,至少把那个“延时800ms”去掉。
或许你写错了,应该是800us。
实际操作18B20一次大约1-2ms应该可以完成的,一次按键过程通常在200-300ms。

出0入0汤圆

 楼主| 发表于 2012-11-28 21:42:44 | 显示全部楼层
感谢马老师回复,我现在是在学习AVR,用的ICC
我看1820的资料转换温度时间典型值是200MS,9位精度大概100MS,12位精度750MS,不是程序操作时间,800MS是等待温度转换完成,导致无法正常判断按键。

在请教个问题就是使用你的状态机如果程序中有长时间软件延时是否会影响按键(我的理解是会影响,不知道正确不)?现在判断应该是这800MS导致了按键工作不正常,因为把1820的程序取消后按键反应很快

出0入0汤圆

发表于 2012-11-29 15:38:35 | 显示全部楼层
1、最好别用软件延时
2、按键处理别放在中断里面

出0入0汤圆

 楼主| 发表于 2012-12-2 17:51:55 | 显示全部楼层
能不用我也不想啊
只是那个转换温度的几百MS时间不知道怎么弄

出0入0汤圆

发表于 2013-5-2 16:18:18 | 显示全部楼层
我也遇到过楼主类似的问题,最后的解决方法是温度转换完成前关闭中断也就相当于这段时间里按键无效。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 17:50

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

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