\ ****************************************************************************** 
\ Gestion bouton pin 12 carte Arduino MEGA 2560 R3 
\ 
\ Forth version: Flash Forth (http://flashforth.com/)  
\ author: M PETREMANN 
\ Creation:     29 mai 2019 
\ Modification: -- ----- ---- 
\ ****************************************************************************** 
 
decimal 
flash                \ selection mémoire FLASH 
-button              \ supprime les précédentes définitions crées après -blink 
marker -button       \ définit le marqueur -blink 
 
37 constant PORTB    \ définition registre PORT du port B 
36 constant DDRB     \ définition registre DDR  du port B 
35 constant PINB     \ définition registre PIN  du port B 
 
: pin12? ( --- fl) 
    PINB c@          \ empile contenu registre PIN du port B 
    $40 and          \ ET logique avec masque 01000000 pin 12 
    0=               \ si nul 
    if 
        false        \ empile FALSE 
    else 
        true         \ empile TRUE 
    then 
  ; 
 
\ PORTC 
40 constant PORTC	\ Port C Data Register 
39 constant DDRC	\ Port C Data Direction Register 
38 constant PINC	\ Port C Input Pins 
 
: init-ddrc ( ---)      \ ittialise PORTC en sortie sur tous les bits 
    $ff DDRC c!         \ active pins en sortie sur PORT C 
  ; 
 
 
: pin30on ( ---) 
    PORTC c@ 
    $80 or 
    PORTC c! ; 
 
: pin30off ( ---) 
    PORTC c@ 
    $80 $ff xor and 
    PORTC c! ; 
 
: allumeLED ( ---) 
    begin 
        pin12?          \ bouton activé 
        if 
            pin30on     \ si oui, allume LED 
        else 
            pin30off    \ si non, éteint LED 
        then 
    key?  
    until ;