今天看见了和日本人的差距,寒心。

[复制链接]
6854|29
 楼主| jadetang 发表于 2008-5-22 10:07 | 显示全部楼层 |阅读模式
做了一个LED显示器的控制板,日本的用的两片51加一个双口ram,可能以为是日本人做得早吧,ARM不流行,现在我们用ARM做,CPU是LPC2292,按说处理能力应该达到要求了吧。可是在通信协议里面有一项是控制板必须发送应答数据给上行,通过LPC2292的串口模块发出去,才发现这个发送的速度真是慢啊,bps是9600,定死的。由于整个程序的运行速度卡在了这个应答上面,造成LED屏幕显示的闪烁。<br /><br /><br />后来一想,日本人为什么要用两片51,估计也是考虑了这个问题吧,一片用来做通信,一片用来做显示控制。恩,以后多注意。
dld2 发表于 2008-5-22 10:10 | 显示全部楼层

这个和日本人没关系

如果串口通讯速度满,而影响到你的LED显示,是你设计的问题。
菜鸟的心态 发表于 2008-5-22 10:10 | 显示全部楼层

所以要努力啊

所以我们这一代要努力啊~~
t.jm 发表于 2008-5-22 10:16 | 显示全部楼层

奔驰追不上单车肯定是你的问题.

  
xwj 发表于 2008-5-22 10:41 | 显示全部楼层

kao,这和日本人有个P关系

是你自己的程序写的太烂了<br /><br />用LPC2292的硬件串口,bps是9600都能影响到显示,真是不得不佩服你!
aweyfan 发表于 2008-5-22 10:43 | 显示全部楼层

够烂

不懂用中断
computer00 发表于 2008-5-22 11:05 | 显示全部楼层

哈哈~~~奔驰追不上单车不一定是楼主的问题~~~

可能是人家单车开的单车道或者小胡同拉,奔驰开不上去的~~~~
xwj 发表于 2008-5-22 11:08 | 显示全部楼层

LZ的奔驰之所以追不上单车,是因为他是推着奔驰跑:-)

  
hq_y 发表于 2008-5-22 11:11 | 显示全部楼层

学习所长的mcu设计理论,51能跑出arm的水平

否则arm跑不出51的水平
chunyang 发表于 2008-5-22 11:28 | 显示全部楼层

楼主的问题确实是自己的软件设计问题

想想多任务调度机制……
 楼主| jadetang 发表于 2008-5-22 13:33 | 显示全部楼层

真的是软件问题吗?

多任务调度,中断都用了。<br />把问题简化了,就这段代码<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDlyHMSM(0,0,0,200);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendByte(0x02);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDlyHMS(0,0,0,200);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendByte(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDlyHMSM0,0,0,200);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendByte(0x03);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDlyHMSM0,0,0,200);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendByte(0x03);<br />正在扫描LED的时候,来个中断,你1000毫秒类要应答这4个字节。<br />我时间片都分得够细了,还是影响了LED的显示。<br />好比奔驰和单车在一条路上,这段路上有一段宽度只有1米,奔驰能跑过单车吗?
dld2 发表于 2008-5-22 13:46 | 显示全部楼层

楼主

串口发送用中断方式。<br />待发送的数据包先放在缓冲区。<br />发送中断可以在有数据发送时打开,发送完毕后关上。<br /><br />另,没见过发送一个字节后,再用OS的delay调用延时的。这个delay一般用来处理ms级以上的延时。
 楼主| jadetang 发表于 2008-5-22 15:56 | 显示全部楼层

你没见过吗?

delay使这个任务挂起,分一点时间片给显示的任务,这样可以减小闪烁,有不对?
maychang 发表于 2008-5-22 16:28 | 显示全部楼层

同意8楼

  
computer00 发表于 2008-5-22 16:47 | 显示全部楼层

把刷LED放到优先级最高的定时器中断里面,看它还闪不?

不要搞什么操作系统了...
liulwn 发表于 2008-5-22 17:02 | 显示全部楼层

有差距呀

就国产的螺丝和进口的螺丝来比吧,国产的拧几次就没牙了,进口的拧来拧去都没问题。
t.jm 发表于 2008-5-22 17:25 | 显示全部楼层

差距是有,而且大部分的差距是人为的.

只要老板有做高档产品的决心,我们的产品不和别人比,和自己比也能在一夜之间进步十年.<br />举一些例子:<br />1:路边摊上有那种老虎钳,用的铁又多便宜不能用,比小日本的钳子差多了,<br />但是路边摊上那种老虎钳代表着我们的实际水平吗?<br />2:我最痛恨臭豆腐,腐竹等不用和别人比,比自己1000年前的老祖宗都不如,倒退<br />1000年以上,这合逻辑吗?<br />3:很多工程师热忠于用IO口做LOW&nbsp;COST的AD,如果用带AD的MCU去做产品不会更稳定更好吗?<br />所以我说,只要这个社会有决心做好的产品,我们一夜之间就能进步十年以上.
djyos 发表于 2008-5-22 17:52 | 显示全部楼层

LZ这个水平还想代表中国人

你的水平只代表你自己,并不代表中国人的水平,用两个51的水平也并不一定就代表了日本人的水平,
yewuyi 发表于 2008-5-22 17:52 | 显示全部楼层

小日本的两片51就已经够烂的了……

呵呵,LZ的程序更烂……
keaiduoyu 发表于 2008-5-22 19:16 | 显示全部楼层

用单片机控制LED怎么也不会闪的

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

108

帖子

0

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