导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→硬件:请教51电路板调试[qjlsy]

 *第5422篇: 硬件:请教51电路板调试

  
楼 主:qjlsy 2002年10月11日11:30
 硬件:请教51电路板调试
在调板子的51单片机部分,遇到一个很怪的问题(addr0-2依次为外部存储器0x4000-0x4002单
元)

a=addr0;
b=addr1;
c=addr2;

可以读出3个数据

addr0++;
addr1++;
addr2++;
a=addr0;
b=addr1;
c=addr2;

可以写3个数据

a=addr0; 可以读出数据
b=addr1; 读出数据始终为0
c=addr2; 读出数据始终为0
addr0++;
addr1++;
addr2++;
a=addr0; 可以读出正确的addr0+1后的数据
b=addr1; 可以读出正确的addr1+1后的数据
c=addr2; 可以读出正确的addr2+1后的数据

a=addr0; 可以读出数据
b=addr1; 读出数据始终为0
c=addr2; 读出数据始终为0
a=addr0; 可以读出正确的addr0数据
b=addr1; 可以读出正确的addr1数据
c=addr2; 可以读出正确的addr2数据

怀疑时序问题,可改后发现

a=addr0; 可以读出数据
i=0;
b=addr1; 可以读出数据
i=0;
i=1;
c=addr2; 读出数据始终为0
i=0;
addr0++;
addr1++;
addr2++;
a=addr0; 可以读出正确的addr0+1后的数据
b=addr1; 可以读出正确的addr1+1后的数据
c=addr2; 可以读出正确的addr2+1后的数据

好像不能连续读,一旦发现后面有连续读,就只能读出第一个数据,这是怎么回事?是板子的问
题,还是程序的问题?如何解决?还请各位高手和前辈多多指教!

谢谢!

  
2楼:qjlsy 2002年10月11日12:08
 希望老古先生和各位前辈能帮我看一下这个问题.谢谢!
  
3楼:qjlsy 2002年10月11日20:17
 重新做延时,问题解决,但不明白为什么同样的读写(对相同芯片相同电路)会有不同的时序?
我又重新做了一次延时

a=addr0;
for(i=0;i<10;i++){;}
b=addr1;
for(i=0;i<10;i++){;}
c=addr2;
for(i=0;i<10;i++){;}
addr0++;
addr1++;
addr2++;
a=addr0;
b=addr1;
c=addr2;

这次都可以读出数据,可为什么同样的读写(对相同芯片相同电路)会有不同的时序呢?这应该
不是板子的问题吧?还请大家多多指教,谢谢!


>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:C51编程:各位大侠帮帮忙好吗??对RTL8019的C51编程小弟不甚了解,望各位指点一下!!!

[下一篇主题]:你要什么?