flyair
驱动牛犊
驱动牛犊
  • 注册日期2004-07-13
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1263回复:5

有关44b0x豪华板上SL811HS的问题?

楼主#
更多 发布于:2004-09-11 14:00
我在44b0x上,测试SL811HS读些的时候,出现以下问题

能正确读写某个存储器的值,但是连续读取一块存储器的时候中间有些地址总会出错,每次错的地址还不一样。

比如,这样可以正常工作:
SL811Write(0x40,0x88);
SL811Read(0x40)这样的值还是0x88.
但是,这样写中间的某些存储器就会出错:
for(i=0x40; i<0x80; i++)
{
SL811Write(i,i)
}
for(i=0x40; i<0x80; i++)
{
res=SL811Read(i)
Uart_Printf(res);
}
这样每次得到的结果都不一样。
有没有人遇到过类似的问题,请指点。谢谢
email:hdb198@126.com   QQ:64933453   欢迎讨论
flyair
驱动牛犊
驱动牛犊
  • 注册日期2004-07-13
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-17 16:05
难道就没人知道吗?
wgq
wgq
驱动小牛
驱动小牛
  • 注册日期2001-07-23
  • 最后登录2013-12-09
  • 粉丝3
  • 关注0
  • 积分40分
  • 威望342点
  • 贡献值0点
  • 好评度97点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-19 11:20
我试过了,找到问题所在。
你的这段程序一般是在USB中断程序写的,是调用SL811read函数存在问题。你试着不用函数,直接进行地址读写或者
使用EXTERN在外部说明一下SL811read函数,就可以了。
qq
flyair
驱动牛犊
驱动牛犊
  • 注册日期2004-07-13
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-19 11:48
多谢你的指点,但是我的这段程序不是在中断中写的,我只是想测试
能不能正确读写SL811HS,实际上这段程序直接放在main()函数里面的。SL11Read()就在同一文件中也应该不用extern说明阿。
wgq
wgq
驱动小牛
驱动小牛
  • 注册日期2001-07-23
  • 最后登录2013-12-09
  • 粉丝3
  • 关注0
  • 积分40分
  • 威望342点
  • 贡献值0点
  • 好评度97点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-19 19:49
不好意思,我说错了。

我把你这段程序写在主程序中,而sl811read sl811write在中断函数中定义,未做声明。这样测试现象跟你说得一样。

我用把函数的内容移过来,不使用函数调用,就不存在这个问题了。你可以试试!          
qq
flyair
驱动牛犊
驱动牛犊
  • 注册日期2004-07-13
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-20 12:16
谢谢,我的SL11Read(),SL11Write()就是写在main()那个文件里的,我把这两个函数的内容一致过来,看到的结果也一样。我怀疑是
44B0X的寄存器的问题,你是怎么设置的,尤其是SYSCFG,BankCon4
这两个寄存器? 或者是晶振的问题,你用的是有源的还是无源的。
游客

返回顶部