这种语法不会出问题吧?在此还有一事相求(问):在24C16子程序里面的读子程的slave的地址问题。就是在主函数里面调用24C16的读子函数地址。 void wri_n(uchar z,uchar * x,uchar y,byte ds) /*z:24c64addr,x,rom or ram or xdata addrds:写进24c16的分区, 第1区256b,ds=0xa0;第2区256b,ds=0xa2 第3区256b,ds=0xa4;第4区256b,ds=0xa6 第5区256b,ds=0xa8;第6区256b,ds=0xaa 第7区256b,ds=0xac;第8区256b,ds=0xae*/ { uchar i; uchar a; for(i=0;i<y;i++) { a=*(x+i); I_addres_wri(ds,z+i,a); } } rea_n(uchar z,uchar * x,uchar y,byte ds) /*z:24c64addr,x,rom or ram or xdata addr*/ { uchar i; for(i=0;i<y;i++) { *(x+i)=I_addres_red(ds,z+i); } } main() { wri_n(0,0x8000,7,0xa8); rea_n(7,0x8000,7,0xa8); } 上面的例程是读写在同一个绝对地址空间这样正确吗?为啥uchar z:24c16addr, 在调用读子程序时,z值变为了7,而不是跟写函数一样改为0?还有读写用同一个ram/rom空间(0x8000)这样行吗?不会出错?如果改为这面这个子程序可以吗?
main() { wri_n(0,0x8000,7,0xa8); rea_n(0,0xa000,7,0xa8); }
|