ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
67282 Топик полностью
jaga-jaga (30.08.2006 20:55, просмотров: 1) ответил AVR на Нэ надо!
надо > ;tst16.c: 27: { > ... > btfsc 3,2 = 2.5 такта вместе с goto, т.к. или будет skip, > или goto > goto 15 - учтено строчкой выше там эль пять (от лабел) не пятнадцать. вот именно это один из промахов оптимизатора, а не накладные расходы. группу из четырех инструкций заменяем на две: decfsz_chan+0 bsf6,0 тоже касается канала 23 (последняя группа) - тоже промах. четыре заменяем на две плюс goto на выход из прерывания, либо retfie тут же. вижу 7 тактов: TMR0 -= 199; T0IF = 0; if(--refr) еще 2: retfie итого 9. 3 такта на то, чтобы попасть на вектор итого: 12 если сохранять/восстанавливать W и STATUS, то еще 4 + 4 тактов, но при сравнении с "регистровой" версией их учитывать не будем - авр тоже с оставшимися регистрами толком ничего не сделает. получили 651Гц для 10мипсового пика (256 шагов). у авр interrupt latency нулевая? (то, что у пика посчитали, как 3 такта на вход)