汇编跟C语言写的程序差距有那么大嘛?

[复制链接]
4130|19
 楼主| 电子三极管 发表于 2010-2-2 08:13 | 显示全部楼层 |阅读模式
请问诸位高手:汇编跟C语言写的程序差距有那么大嘛?我是用C语言写的一个倒计时显示程序 ,就是马路口的交通信号灯倒计时。现在的问题是我写的程序刚开始几个小时两块显示屏是很齐步的,慢慢的就开始出现不齐步,昨晚试了一个晚上 ,早上起来发现不整齐了 一前一后,相差1S或者不到1S,又有时候又齐。这是什么毛病?我都没辙了 所以在百般无奈之下,讨教各路高手来了。提醒一下是不是我定时器的缘故 还是我程序本生的问题?人家用汇编写的程序都很齐 。而且一直都很齐的
zhaoyu2005 发表于 2010-2-2 08:21 | 显示全部楼层
应该是程序或者定时器用法的问题,定时器计数与你使用C或者汇编无关,如果出现很大的差别那就是程序或者定时器用法的问题了,时间要求严格并且定时器的中断不是最高优先级的话,应该用自动装载模式。
除非对汇编很精通,一般人用汇编写的程序,不见得就比c写的性能好
 楼主| 电子三极管 发表于 2010-2-2 08:53 | 显示全部楼层
我也用过8位自动装载,我用的是4.194304M晶振,8位的话时间很短只能到500us开始中断一次,所以又要2000次的累计,在累计的运算也会存在误差嘛?我试过自动装载效果也不齐一段时间之后 2# zhaoyu2005
 楼主| 电子三极管 发表于 2010-2-2 08:56 | 显示全部楼层
中断最高优先级 现在我只用了一个定时器1,是不是不需要中断优先级了呀? 2# zhaoyu2005
xuyaqi 发表于 2010-2-2 10:03 | 显示全部楼层
用“定时器”作时间基准精度不可能高,精度要高要用其他方法。
zhaoyu2005 发表于 2010-2-2 11:58 | 显示全部楼层
那应该是其他地方的问题,只有一个中断就不用定义优先级了
原野之狼 发表于 2010-2-2 12:09 | 显示全部楼层
跟使用汇编还是C没有关系 你仔细检查程序咯
李冬发 发表于 2010-2-2 12:54 | 显示全部楼层
不可能同步的,再准,时间长了也会走岔的。
程序匠人 发表于 2010-2-2 13:09 | 显示全部楼层
两块屏是同一个程序吗?
如是,则不是程序问题。
可能是晶振误差
cubasa 发表于 2010-2-2 17:09 | 显示全部楼层
本帖最后由 cubasa 于 2010-2-2 17:10 编辑

这种方案的倒计时应该只是自己做着玩或者学校的教学课题吧。
做成产品是不可能的,没有实用性。24小时连续工作,晶振再精密也没有用。
外面马路上的倒计时都是自学习型的。用红绿灯信号来做同步。
就是说,无论红绿灯信号机怎样设置,两三个周期下来就能正确显示。
古道热肠 发表于 2010-2-2 17:18 | 显示全部楼层
应该是一个主控来管理吧,如果是多个MCU控制,那要定时同步时钟的,不然肯定会有误差。
程序匠人 发表于 2010-2-2 18:04 | 显示全部楼层
可以用工频信号来同步。很精确哦
tigedtp 发表于 2010-2-2 19:35 | 显示全部楼层
跟程序没关系,没有完全一样的晶振,这个做法就有问题。
 楼主| 电子三极管 发表于 2010-2-3 15:59 | 显示全部楼层
是的 你说的很对 问题是我们公司做的就是这样的产品,以前人家用汇编写的就能达到这个要求了  我们的采样信号也是靠一台控制仪输出的,显示板只是采集控制仪出来的电压时长,在进行两个周期的比较之后,显示正常 问题是我这些都出来了,就是两台显示屏显示比较一段时间会出现不整齐,(一会齐一会不齐..) 10# cubasa
 楼主| 电子三极管 发表于 2010-2-3 16:02 | 显示全部楼层
工频信号?我不知道你说的是?  ...我们就是从一台控制仪出来的信号 用我的显示屏去采集他的电压时长,通过两个周期的比较在进行显示的原理。现在我的显示一段时间之后不齐 12# 程序匠人
cubasa 发表于 2010-2-4 13:39 | 显示全部楼层
14# 电子三极管
红绿灯信号一般都只有几十秒到几分钟,如果是用它们做同步的话,一定是能做到完全同步,分毫不差的。如果是同一个硬件系统,人家用汇编成功,就可以排除硬件的原因。
可以肯定不是因为用C的原因。这样的单片机系统,实时性不高,用C是首选。是你的程序有问题,我大概知道为什么,但希望你去自己考虑。自己把问题解决了成就感会更大。
pkt800 发表于 2010-2-4 21:12 | 显示全部楼层
有差别!可读性方面
zjswuyunbo 发表于 2010-2-5 00:52 | 显示全部楼层
或者楼主贴出程序电路图给大家看看(方便的话)…这个东西应该不是什么觉密吧?
joecongmin 发表于 2010-2-5 10:55 | 显示全部楼层
用市电频率同步,硬件搞个 过零检测,或两个进行通信
maaaaa 发表于 2010-2-5 14:55 | 显示全部楼层
早上起来发现不整齐了 一前一后,相差1S或者不到1S,又有时候又齐
如果真是这样应该是程序问题。楼主自己检查一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:承接采集设备运行参数,如温度、速度、压力、浓度、流量、节拍、湿度、重量等。采用PIC 51 AVR等类单片机 59467837(杭州单片机开发技术交流QQ群)

116

主题

530

帖子

2

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