void v_WriteRawRC2(u1_t addr, u1_t value) { bool_t __bea ; // data volatile u1_t __addrTemp, __valueTemp;//试图用data区中转一下
__bea = _testbit_(EA) ;
tstBuf[cursor] = addr ; MODINC(cursor, 20) ; tstBuf[cursor] = value ; MODINC(cursor, 20) ;//保存写到片外去的地址和数值
MF_CS_IO = 0 ;//使能rc500芯片 _nop_() ; _nop_() ; _nop_() ; AUXR = 2;//关芯片的片外ram _nop_(); _nop_() ; // WriteRawRC1(__addrTemp, __valueTemp); WriteRawRC1(addr, value); _nop_(); _nop_() ; _nop_() ; AUXR = 0;;//开芯片的片外ram _nop_(); _nop_() ; _nop_() ; MF_CS_IO = 1 ;//禁能rc500 _nop_() ; _nop_() ; _nop_() ;
EA = __bea ; }
rc500的地址和mcu(89e564,片内有728byte的xdata)的片内xdata空间地址是重合的,所以写数的时候需要开关该空间。 RegFIFOData是rc500的寄存器地址。
|