老古求救!我写了一个简单的对8019ram的读写程序. 数据"abcdefgh"写道0x4000,读出送inbuf后送液晶显示.运行结果总是显示乱码,或者有时候总是显示"PPPPPPP".
会是什么原因啊,我调了一个星期了.
void main(void)
{uchar * outbuf={"abcdefgh"};
uchar * inbuf;
uchar i;
rtl8019as_rst(); //网卡复位
page(0);
reg09=0x40 ; //txdwrite highaddress
reg08=0x00; //read page address low
reg0b=0x00; //read count high
reg0a=8; //read count low;
reg00=0x12; //write dma, page0
for (i=0;i <8;i++) //for (ii=4;ii <len+4;ii++) //是否加4有待验证
{
reg10=*(outbuf+i);
}
reg0b=0; // count high 中止DMA操作
reg0a=0;// count low
reg00=0x22;//abort/complete dma page 0
page(0);
reg09=0x40;//寄存器RSAR1 dma read highaddress=0
reg08=0;//RSAR0 dma read lowaddress=0;
reg0b=0; //RBCR1 read count high
reg0a=8;//RBCR0 count low
reg00=0x0a;//dma read and start
for (i=0;i <8;i++)
{ *(inbuf+i)=reg10;//读取一个字节
}
lcd_initialize(); //液晶初始化
for(;;)
{firstline(inbuf,8);//数据送液晶第一行显示
delay_ms(20000);
}
}