mainTitle = "Test interruption via télécommande infrarouge"; $this->asideSection = "Permet de vérifier le bon fonctionnement du récepteur KY-022 " ."via une interruption matérielle."; ?> \ ****************************************************************************** \ Test interruption via télécommande infrarouge \ \ Forth version: Flash Forth (http://flashforth.com/) \ author: M PETREMANN \ Creation: 01 juillet 2019 \ Modification: 11 juillet 2019 \ ****************************************************************************** -tstI marker -tstI 37 constant PORTB \ define register PORT port B 36 constant DDRB \ define register DDR port B 35 constant PINB \ define register PIN port B %00000001 constant pin19 \ mask 00000001 for pin 19 (PB0) %10000000 constant pin26 \ mask 10000000 for pin 26 (PB7) : init-ddrb ( ---) pin19 DDRB mclr \ init PORTB to input for PB0 pin26 DDRB mset \ init PORTB to output for PB7 ; \ WARNING: specific Mega 2560 10 constant PCINT0 \ Pin Change Interrupt Request 0 107 constant PCMSK0 \ Pin Change Mask Register 0 $6b 104 constant PCICR \ Pin Change Interrupt Control Register $68 \ $07 constant PCICR_PCIE \ Pin Change Interrupt Enables : toggleLed ( ---) %00000001 PCMSK0 mclr \ mask interrupt for PB0 pin26 PORTB mtst if pin26 PORTB mclr else pin26 PORTB mset then %00000001 PCMSK0 mset \ enable interrupt for PB0 ;i : init-tgLed ['] toggleLed PCINT0 int! %00000001 PCMSK0 mset \ mask interrupt for PB0 %00000111 PCICR mset ei \ ei = Enable Interrupt ; init-tgLed init-ddrb