ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
101103
abivan (28.09.2007 20:04, просмотров: 10054)
Возникла накладка. PICC-18 9.5pl3 служебные регистры(TBLPTRL,TBLPTRH) и локальные переменные. Зацикливается в do-while, потому как компилятор переменную i распределил на TBLPTRL,TBLPTRH. Что кто предложит для обхода. Можно конечно все статиками сделать и забить, но все ж. <c> static retcode ReadData(ptr p){ File_t_Handle *this; ptr pBuff; DWORD dwAddr; WORD wSize, i; this=(File_t_Handle *)p; wSize=this->wCount; pBuff=this->pBuff; if(this->btBiM) WriteMemBlock(this); dwAddr=this->DrvData.dwOffset+ sizeof(File_t_FatHeader)+this->iCurrAddr; TBLPTRL=LOBYTE(LSBWORD(dwAddr)); TBLPTRH=HIBYTE(LSBWORD(dwAddr)); TBLPTRU=LOBYTE(MSBWORD(dwAddr)); this->bfCurrState=EEPROM_READ_GO; this->iCurrAddr+=wSize; i=wSize; do{ asm("\tTBLRD*+"); *pBuff++ = TABLAT; }while(--i); TBLPTRU=0; return(wSize); } </c>