ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
244293 Топик полностью
testerplus (22.03.2011 20:46 - 20:48, просмотров: 270) ответил AVF на угу, похоже
До кучи: с помощью Vlad27 еще выловил баг в STD-версии для PIC16 (PICC STD 9.60PL3) //------------------------------------ volatile char var0; bank1 volatile char var1; //------------------------------------ char func (char i) { if (i) return 1; return 0; } //------------------------------------ void Task (void) { for (;;) { func(0); func(var0); var1++; }; } //------------------------------------ void main (void) { while (1) Task(); } //------------------------------------ И вот листинг функции Task: 12: ; void Task (void) 13: ; { 14: ; for (;;) 15: ; { 16: ; func(0); 07F9 3000 MOVLW 0 ; 07FA 27F3 CALL func ; 17: ; func(var0); 07FB 0820 MOVF var0, W ; 07FC 27F3 CALL func ; 18: ; var1++; 07FD 1683 BSF STATUS, 0x5 ; 07FE 0AA0 INCF var0, F ; 19: ; }; 07FF 2FF9 GOTO 0x7f9 ; 20: ; } В начале функции (и цикла тоже) отсутствует предустановка STATUS'а, и после одного прохода тела цикла попадаем в его начало с установленным RP0. На 9.80 по-простому такую ошибку не сгенерить, он не понимает bank'ов