ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
340109 Топик полностью
fk0, легенда (11.07.2012 15:18, просмотров: 198) ответил PIC32 на Подсказка. Во время записи в FLASH, "movwf TABLAT" выполнил, а следующие за ним копирование в holding register "tblwt+*" - не успел, попал в прерывание.
А... забыл, что ещё есть инструкция TBLRD и TABLAT ни разу не индексный регистр. Ниже что сохраняется для самого быстрого и приоритетного прерывания:  movff fsr0l,saved_regsh+6 movff fsr0h,saved_regsh+5 movff tblptrh,saved_regsh+4 movff tblptrl,saved_regsh+3 movff tablat,saved_regsh+2 movff prodh,saved_regsh+1 movff prodl,saved_regsh goto int_func Не успевает 1-wire slave на 16МГц. :-( Хоть на ассемблере переписывай. От PROD не избавиться (есть умножение), от FSR0 тоже, от TBLRD тоже. До чего уродская архитектура. В приличных есть второй банк регистров для быстрых прерываний.
[ZX]