这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » RTL8019AS RTL8019AS,特别奇怪的问题,搞的我都快炸了

共2条 1/1 1 跳转至

RTL8019AS RTL8019AS,特别奇怪的问题,搞的我都快炸了

院士
2006-09-17 18:14:16     打赏
RTL8019AS RTL8019AS,特别奇怪的问题,搞的我都快炸了



关键词: RTL8019AS     特别     怪的     问题     我都     快炸    

院士
2006-12-22 22:43:00     打赏
2楼
问 我接收正常,发送的时候,有时可以,大部分不可以接收到.如下:

void send_frame(UCHAR xdata * outbuf, UINT len)
{
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;     //设置txp为高,发送    
    }
    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);
} 1: 有谁知道吗? 2: 搞定了 3: 呵呵,这也是论坛的好处之一有些事情你在这里冷静写下来的同时也整理了思路,心情是很重要的.
上次一个小问题搞了两天,无奈上来求助,心情放松了,再去看,
跟你说的一样,搞定了,呵呵.
春节还这么发狠啊? 4: 无聊,自己搞着玩 5: 请指教楼主,请问你的程序是哪里出错了,怎么搞定的,请指教一下,佩服万分啊,我还在挣扎啊!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]