导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→RTL8019AS一直发送不成功,但发送时LED0也闪烁,我[guest]

 *第29562篇: RTL8019AS一直发送不成功,但发送时LED0也闪烁,我用的是下面的程序,有什么问题啊?

  
楼 主:guest 2005年2月11日14:44
 RTL8019AS一直发送不成功,但发送时LED0也闪烁,我用的是下面的程序,有什么问题啊?
void send_frame(UCHAR xdata * outbuf, UINT len)/*发送一个数据包的命令,长度最小为
60字节,最大1514字节*/
{
UCHAR i;
UINT ii;
    page(0);
    if(len  <60)len=60;
    txd_buffer_select=!txd_buffer_select;
      if    (txd_buffer_select)
        reg09=0x40 ;    //txdwrite highaddress
    else
        reg09=0x46 ;    //txdwrite highaddress
    reg08=0x00;         //read page address low
    reg0b=len>  >  8;        //read count high
    reg0a=len&0xff;        //read count low;
    reg00=0x12;            //write dma, page0
    for    (ii=0;ii  <len;ii++)    
    {
       reg10=*(outbuf+ii);  
    }

    /* 以下3句为中止dma的操作,可以不要            */
    reg0b=0x00;        //read count high   中止DMA操作
    reg0a=0x00;        //read count low;
    reg00=0x22;        //complete dma page 0

    for(i=0;i  <16;i++)    //最多重发16次
    {
        for(ii=0;ii  <1000;ii++)    //检查txp为是否为低
        {
            if ((reg00&0x04)==0) break;
        }
        if ((reg04&0x01)!=0) break;    //表示发送成功
        reg00=0x3e;
    }
    reg07=0xff;
    if(txd_buffer_select)
        reg04=0x40;    //txd packet start; 
    else
        reg04=0x46;    //txd packet start; 
    reg06=len>  >  8;    //high byte counter
    reg05=len&0xff;    //low byte counter
    reg07=0xff;
    reg00=0x3e;        //to sendpacket;  
    free(outbuf);
}

  
2楼:guest 2005年2月11日16:58
 搞定了
  
3楼:sltian 2005年2月17日08:59
 什么原因呀,能不能说一下?
,原来错误是什么原因呀?能不能说一下?
我正在做这方面,能不能给我一份你的程序呀,非常感谢!
xiaosheng1981@163.com

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

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


[上一篇主题]:求助!!急求全自动洗衣机单片机程序,可支付适当费用。

[下一篇主题]:请教C51