cupneedles
驱动牛犊
驱动牛犊
  • 注册日期2004-08-03
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1438回复:3

关于D12的一次只往缓冲区写一个字节数据的问题(40分求教!)

楼主#
更多 发布于:2004-11-09 11:11
各位大侠,小弟请教!
我现在的要求是一次只向D12的缓冲区写一个字节数据,然后判断是否写满,写满就使缓冲区有效。而不象周立功的参考代码那样一次从EpBuf中写64字节到缓冲区,再让它有效。测试代码如下
 if(bytecount==0)
       {
          *((unsigned char xdata *) 0xff03) = 5;
          i=*((unsigned char xdata *) 0xff02);
          *((unsigned char xdata *) 0xff03) = 0xF0;
          *((unsigned char xdata *) 0xff02) = 0;
          *((unsigned char xdata *) 0xff02) = 64;
          bytecount++;
       }  
    else
       {
//           *((unsigned char xdata *) 0xff03) = 0xF0;  
      *((unsigned char xdata *) 0xff02) = 0x30;
           bytecount++;
           if(bytecount==65)
             {
                 *((unsigned char xdata *) 0xff03) = 0xFA;
                 bytecount=0;
             }
       }
其中bytecount为计数的全局变量,初始化为0
但BUS HOUND读到的数据内容都是00,这是什么原因,我该怎么写,在代码逻辑上我想应该没什么问题吧,是不是D12根本就不能这样用,还是有什么东西我没注意到,请高手不吝指正。多谢了!
crazyforu
驱动牛犊
驱动牛犊
  • 注册日期2004-06-09
  • 最后登录2005-01-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-12 16:52
你这个程序有大问题,没有实现循环。
cupneedles
驱动牛犊
驱动牛犊
  • 注册日期2004-08-03
  • 最后登录2006-04-06
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-14 00:46
首先感谢楼上这位大侠的回复。
光靠上面这段代码当然不能实现循环啦!这只是循环在某一次中的实现代码,在它的外面当然还有循环判断语句啦!只是我没贴出来,因为我想问的只是这样一次写一个字节到D12的缓冲区中能不能实现。我试着好象不行。问了周立功的技术支持,他们也不知道行不行,只说让我试试看。我看估计是不行的了。
不过问题解决了,我用了另一种方法实现了这个功能,呵呵! :D :D
hxdlmnhx1
驱动牛犊
驱动牛犊
  • 注册日期2003-10-01
  • 最后登录2007-07-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-17 14:38
怎么解决的,我也要用到例似的情况,hxdlmnhx1@sina.com.cn
游客

返回顶部