Отправлено
bp (178.66.66.45) 20 февраля 2010, г. 19:10
Воспользовался Вашим советом. Сделал функцию int0_ISR_slow() обработчиком неиспользуемого прерывания. А в обработчике прерывания INT0 сделал на нее переход.
EXTERN int0_ISR_slow COMMON INTVEC:CODE:ROOT(1) ORG 4 JMP int0_ISR PUBLIC int0_ISR RSEG CODE:CODE:NOROOT int0_ISR: sbi 0x18,0x00 jmp int0_ISR_slow reti END
Время реакции заметно сократилось: было в районе 4 мкс, стало ...
Вот собственно теперь я не могу понять почему так стало. Прыгает в диапазоне 1.5мкс ... 2мкс. Почему ? Мне кажется это очень много для atmega128 с тактовой 7.3728МГц. Почему прыгает в таком большом диапазоне ? Других прерываний в этот момент не происходит, это совершенно точно.