导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→大侠帮帮我![wsfeitian]

 *第22173篇: 大侠帮帮我!

  
楼 主:wsfeitian 2004年5月21日20:24
 大侠帮帮我!
关于8019dma读写问题,下面程序.dma写十个数到地址0x4000开始单元.可是读出后全为"9".其中寄存器读写都是正确的.8019的IOCHRDY悬空.

void main(void)
{

unsigned char bb[10]="0123456789";
unsigned char i,j,aa[10];
init_8019();   //8019初始化
serial();        //串口初始化

page(0);
reg07=0x00;
reg09=0x40;
reg08=0x00;
reg0b=0x00;
reg0a=10;
reg00=0x12;
for(j=0;j  <10;j++)
{
reg15=bb[j];  //bb数组存0x4000开始单元,reg15为dma端口

}
page(0);
reg09=0x40;
reg08=0x00;
reg0b=0x00;
reg0a=10;
reg00=0x0a;
for(j=0;j  <10;j++)
{
aa[j]=reg15;      // 读出写入数据
}
reg0b=0; // count high 中止DMA操作 
reg0a=0;// count low
reg00=0x22;//abort/complete dma page 0
serial_disp(aa,10);    串口输出
while(1);
}


根据分析,写入最后一位时为9,一直存在reg15中,所以读取的过程中根本就没有从ram中读出.这是什么原因啊?其中还有一个奇怪的问题,reg10-reg17中8个dma端口经过测试只有reg15可以用,常用的reg00不能用,输出始终为0x00.

单片机用89s52,晶振24M.

恳求大侠指点!



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

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


[上一篇主题]:初学单片机,请问老师们:我想用单片机做一个驱动红,绿,蓝三色LED变色的东西,能给指点一下吗?

[下一篇主题]:紧急求助!!!请会VB的高手来帮忙,我出钱啊!