搜索
bottom↓
回复: 24

求助解决数据管闪烁问题!!!!

[复制链接]

出0入0汤圆

发表于 2012-4-13 09:40:09 | 显示全部楼层 |阅读模式
我用ATTINY48做了一个PCF8653 8位数码管显示的电子时钟,每位数码管刷新时间为1.2MS,用遥控器控制,MCU频率1MHZ。
现在出现了一个问题,用遥控调节时间出现数码管闪烁,如果优先数码管显示又会遥控失控,请求解决方案。

出0入0汤圆

 楼主| 发表于 2012-4-13 09:41:12 | 显示全部楼层
先做个记号

出0入0汤圆

发表于 2012-4-13 09:57:42 | 显示全部楼层
数码显示用定时器中断,解码用外部中断,中断程序尽量短!

出0入0汤圆

 楼主| 发表于 2012-4-13 10:38:01 | 显示全部楼层
xiaodao35 发表于 2012-4-13 09:57
数码显示用定时器中断,解码用外部中断,中断程序尽量短!

数码管是采用定时中断,但是遥控译码占用70MS时间,引起闪烁.

出0入0汤圆

发表于 2012-4-13 10:50:16 | 显示全部楼层
遥控译码在中断中立标志,在大循环处理接收的码元!

出0入0汤圆

 楼主| 发表于 2012-4-13 13:42:02 来自手机 | 显示全部楼层
遥控译码采集占用70ms不论在主程序还是中断一样占用。

出0入0汤圆

发表于 2012-4-13 14:04:53 | 显示全部楼层
楼上说得对.
优先级:遥控中断>显示中断>主循环.
中断程序尽量短.具体来说:
1.红外遥控接收:中断中只处理接收到的位数据,字节数据处理在主循环中进行.
2.显示中断,要显示的内容建一个显存区,在主循环中更新显存区.中断中只处理显示驱动.

出0入0汤圆

发表于 2012-4-13 14:09:11 | 显示全部楼层
典型的多任务问题,中断 125uS 收红外的码,不要处理,在主程序处理。
主程序每 1ms 扫描一位数码管。
要不干脆加个IC扫数码管呗,1628什么的

出0入0汤圆

发表于 2012-4-13 14:28:06 | 显示全部楼层
xyr 发表于 2012-4-13 10:38
数码管是采用定时中断,但是遥控译码占用70MS时间,引起闪烁.

70ms。。。你在那干等译码吗

出0入0汤圆

发表于 2012-4-13 14:31:34 | 显示全部楼层
时间片啊。。。

出0入0汤圆

发表于 2012-4-14 10:10:45 来自手机 | 显示全部楼层
70ms?想不闪都难,15Hz都不到。。。。。。

出0入0汤圆

发表于 2012-4-16 07:31:49 | 显示全部楼层
如果能搞到不闪,说明楼主已经达到一境界了。

出0入0汤圆

发表于 2012-4-16 07:32:51 | 显示全部楼层
看到很多解码都是死等,那样不闪才怪。软件架构要重改。上面很多网友说的已经够明白了。

出0入0汤圆

发表于 2012-4-16 08:29:11 | 显示全部楼层
我们 扫描显示 400多只LED,有SPI通讯,有按键输入,神马的,都没闪烁。

出0入0汤圆

发表于 2012-4-16 09:08:17 | 显示全部楼层
中断只设置标志,尽快返回,所有的处理在主循环中做

出0入0汤圆

 楼主| 发表于 2012-4-16 16:25:43 | 显示全部楼层
各位大哥:
好!
有没有红外遥控解码不用死等LED显示案例(源程序)。
谢谢!

出0入0汤圆

发表于 2012-4-16 16:47:51 | 显示全部楼层
上面说得都不错哦。LZ应该自己稍微动动脑筋,这样才有进步嘛。有看别人代码的时间,自己都做好了。

出0入0汤圆

发表于 2012-4-16 19:38:54 | 显示全部楼层
xyr 发表于 2012-4-16 16:25
各位大哥:
好!
有没有红外遥控解码不用死等LED显示案例(源程序)。


显现出真实的面目了,可怜,可怜,实在是可怜(个体)。杯具、杯具,的确是杯具(教育)

出0入0汤圆

 楼主| 发表于 2012-4-17 10:52:42 | 显示全部楼层
原来也是一样,我还在看贴子学习过程中,以为我自已不用学,不用看别人编的教程可以自学成才。
如果我不看别人欧姆定律,我想我没有那本事可以搞个什么定律出来,忘了我好像小学没毕业。呵呵。

出0入0汤圆

发表于 2012-4-17 12:49:36 | 显示全部楼层
刚开始写程序可能会出现死等,因为学校的教材都是delay_ms(),好多入门例程也是这样写的,但是写着写着就会慢慢理解状态转移和时间片,这样才会使嵌入式有更高的执行效率,楼主莫急,万事都有个循序渐进的过程。俺也是菜鸟

出0入0汤圆

发表于 2012-4-17 19:35:43 | 显示全部楼层
EasyEagle 发表于 2012-4-17 12:49
刚开始写程序可能会出现死等,因为学校的教材都是delay_ms(),好多入门例程也是这样写的,但是写着写着就会 ...

"因为学校的教材都是delay_ms(),好多入门例程也是这样写的"

这个说的不符合实际情况。的确目前大多数的教材和入门教程的确是这样的,因为编写人大多自己不具备真正设计系统的能力,只是从老的书上抄。就连很多的32位入门教材都是这样的。

问题是为什么不从入门的开始阶段就给学习者建立中断、时间片、状态机,使用缓冲的理念?这个是值得思考的。

楼上可能会把原因归为学校里的教师(这个是事实),但另一个方面说明学习者不能主动的学习。

实际上好的教材和例子网上还是有的,至少我编写的教材,就非常强调中断、时间片、状态机,使用缓冲这些理念上。而且前2篇的电子版在站上可以免费下载参考的。

出0入0汤圆

发表于 2012-4-17 20:01:05 | 显示全部楼层
machao 发表于 2012-4-17 19:35
"因为学校的教材都是delay_ms(),好多入门例程也是这样写的"

这个说的不符合实际情况。的确目前大多数的 ...

可惜,当年没有碰到像马老师一样好的老师交编程,或者说,好老师都去交硬件了!

出0入0汤圆

发表于 2012-4-18 12:58:37 | 显示全部楼层
machao 发表于 2012-4-17 19:35
"因为学校的教材都是delay_ms(),好多入门例程也是这样写的"

这个说的不符合实际情况。的确目前大多数的 ...

我阅读过马老师的书,从中学习到很多知识,在这里是要先说声谢谢,无意间我以偏概全,我的失误!
前几天有一个10年从业经验的工程师应聘嵌入式软件,对于如何去编写定时任务或延时任务,他的回答是:“如果要求时间精确,就用定时器,如果不要求时间精确,就用delay_ms()”,delay_ms也可以做到时间精确。具体该怎么用,得看系统的需求了,如果能认真阅读马老师的状态机、缓存池、时间片等,便能写出非常优秀的嵌入式软件了。

出0入0汤圆

发表于 2012-4-18 13:46:39 | 显示全部楼层
马老师的书确实不错,前两天看了马老师的按键双击处理程序,昨天用上了,确实不错。

出0入0汤圆

 楼主| 发表于 2012-4-18 18:56:19 | 显示全部楼层
家里环境原因我小学没读完,学了一年家电维修。我对电子特别感兴趣,只要有空闲时间就动动手制作小东西玩玩。
我也买过很多单片机的书看,内容都是上楼说的那样,死延时,现在对买书失去了信心。
大家都说马老师书写的好,今天在当当网买了一本。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 03:45

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

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