|
есть необходимость у микроконтоллера Atmega16 обрабатывать внешние прерывание INT0 и INT1 как по фронту, так и по спаду. судя по описанию, дял этого нужно выставить по два флажка в регистре MCUCR, и разрешить прерывания, выставив флаги в регистре GICR.
что я и делаю:
(вместо сдвига влево стоит '*')
ldi tmp, (1*ISC11|(1*ISC10)|(1*ISC00)|(1*ISC01)
out MCUCR, tmp
ldi tmp, (1*INT1)|(1*INT0)
out GICR, tmp
сигнал прерывания я подаю от ножки этого же контролера - по таймеру.
осцилографом фиксирую вход в прерывание (по импульсу на одном из выходов cpu) и сигнал на ноге INT0.
оказывается, что прерывание случается только по спаду сигнала прерывания - при любой комбинации флагов в регистре MCUCR !!!
E-mail: info@telesys.ru