打印

怪现象,向大侠请教,有详细场景介绍。。。。。

[复制链接]
5492|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XIANSir|  楼主 | 2011-7-21 23:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 XIANSir 于 2011-7-21 23:11 编辑







相关帖子

沙发
XIANSir|  楼主 | 2011-7-21 23:12 | 只看该作者
贴代码太乱了,没法看,还是贴图片吧,希望大侠指教。。。。

使用特权

评论回复
板凳
mohanwei| | 2011-7-21 23:27 | 只看该作者
很奇怪为什么要用两个单片机呢……
串口中断接收+定时器中断扫描,一个单片机就可以搞定了。

使用特权

评论回复
地板
mohanwei| | 2011-7-21 23:36 | 只看该作者
如果对并行处理把握不定,可以尝试串行处理:
1-主机收到数据先放到自身内部的小缓冲区,积累到一定数量后,发出申请共享RAM握手信号,接着等待从机应答;
    收到从机应答后,把数据从内部小缓冲区搬到外部共享RAM;写完数据后,发出释放共享RAM握手信号,接着等待从机应答。
2-从机有空就扫描,扫描完则检测一下是否有握手信号。

使用特权

评论回复
5
XIANSir|  楼主 | 2011-7-21 23:44 | 只看该作者
一个不行。首先我为了简化问题故意吧w78的工作说简单了,其实他还有很多工作,比如语音播放,flash字形读取,外界亮度获取等等。。。。
其次,led显示数据实际上是通过四条60级连的595发送的,所以显示芯片的工作量极大,不可能在做其他工作了。即使现在显示芯片使用的是12倍速的STC10系列并且工作于30MHZ,客户还嫌有点闪烁呢。

使用特权

评论回复
6
XIANSir|  楼主 | 2011-7-21 23:49 | 只看该作者
谢谢四楼的前辈,握手是个好主意,我现在最想知道的是我描述的现象的可能原因

使用特权

评论回复
7
huangqi412| | 2011-7-22 08:54 | 只看该作者
很疑惑 选择2个便宜单片机是否比选择一个贵的单片机好。

使用特权

评论回复
8
lb0577| | 2011-7-22 09:01 | 只看该作者
双端口ram

使用特权

评论回复
9
icecut| | 2011-7-22 09:10 | 只看该作者
你还是有用cm0或者cm3吧....

你这水平玩这个多机,有点累.
如果真想这么玩,多花点钱买个双口ram

使用特权

评论回复
10
joyme| | 2011-7-22 09:32 | 只看该作者
你试试PINIT将保持常态为高,当要W78要写RAM时才变低形成一个下降沿,之后尽快将其变高

使用特权

评论回复
11
XIANSir|  楼主 | 2011-7-22 10:10 | 只看该作者
9# icecut
不是玩,这是产品,而且是遗留产品!!!改不得!!!

我就是维护遗留产品的命!!!

使用特权

评论回复
12
XIANSir|  楼主 | 2011-7-22 10:11 | 只看该作者
你试试PINIT将保持常态为高,当要W78要写RAM时才变低形成一个下降沿,之后尽快将其变高
joyme 发表于 2011-7-22 09:32



谢谢,我会这样试试!!!

使用特权

评论回复
13
xiaohui408x| | 2011-7-22 10:19 | 只看该作者
继续关注。我的水平只能当观众:)

使用特权

评论回复
14
yewuyi| | 2011-7-22 10:25 | 只看该作者
1、操作PIN_IT=1;PIN_IT=0;产生一个下降沿脉冲时,中间应该放几个nop指令让两个MCU有一个缓冲时间,否则脉冲发的太快,接受MCU也是要时间,超过了沿检测的速度,自然很难稳定。
2、看到while(PIN_WR==1);到此俺就晕倒了,这还谈啥任务多少干什么?

使用特权

评论回复
15
wangflw| | 2011-7-22 10:25 | 只看该作者
双单片机?每试过。等解答。。。

使用特权

评论回复
16
joyme| | 2011-7-22 10:27 | 只看该作者
1、操作PIN_IT=1;PIN_IT=0;产生一个下降沿脉冲时,中间应该放几个nop指令让两个MCU有一个缓冲时间,否则脉冲发的太快,接受MCU也是要时间,超过了沿检测的速度,自然很难稳定。


这也是我让LZ保持常态为高电平的原因,W78置高后马上置低,STC估计还没来得及检测到高电平,那何来的下降沿触发

使用特权

评论回复
17
kami03372| | 2011-7-22 10:28 | 只看该作者
没必要的方案......怕接收时候影响显示关屏呗。
用个快点的单片机就好了。

使用特权

评论回复
18
joyme| | 2011-7-22 10:30 | 只看该作者
还有LZ的做法不保险,发出下降沿中断W78马上就开始RAM的操作,没有时间给STC MCU响应是不合理的,最好用握手的协议,即发出中断信号后等待MCU回应,只有回应正确了才可以进行RAM操作,同样MCU对RAM操作是也需要这样做

使用特权

评论回复
19
XIANSir|  楼主 | 2011-7-22 10:41 | 只看该作者
14# yewuyi
谢谢指教。

关于第一条建议,我曾经在二者之间加过1秒的延时,没有作用。。。。

关于第二条,其实不执行这一句此时STC10也没其他事情可干。至于说多任务:显示刷新、语音播放、串行数据接收及解析、AD获取外界光强等任务是并行执行的。而不是说显示刷新和RAM写是并行的。写RAM的时候不可能同时执行显示刷新,因为那要执行RAM读——当然了,前面前辈说双扣RAM,估计可以同时读写,没用过,不知道。。。

使用特权

评论回复
20
XIANSir|  楼主 | 2011-7-22 10:46 | 只看该作者
18# joyme
谢谢前辈,我也认为握手更合理。。

可是你说的问题不是问题:首先,W78是产生下降沿让STC10进入中断,所以,不存在没有给STC10相应时间的说法。
更加关键的是,STC10的实际执行速度是W78的12*(30/11.0592)倍,大概是30倍,所以STC10肯定是有时间执行中断的——而且时间很富余。。。

再说了:下降沿触发的中断没有给STC准备时间,那低电平触发的中断STC10也没有准备时间啊,可低电平触发怎么就可以呢???

而且,我现在最疑惑的问题其实是:为什么低电平触发的中断可以重复进入,而下降沿触发的中断不可以呢???

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:冷暖自知,泰然处之;持之以恒,必有所成!

0

主题

609

帖子

2

粉丝