( Pilote du barre graphe. Version 0.10 du 22 Avril 2012. Ecrit par jpb.forth . ) TELECHARGEMENT DECIMAL ( Barre graphe: ------------- Ecriture: valeur[15..0] Le bit 0 correspond au voyant vert a gauche Le bit 15 correspond au voyant rouge a droite Voyant allume si valeur = 1 ) HERE 16 ALLOT CONSTANT TEMPO_BG 0 VARIABLE NIVEAU_BG 250 VARIABLE TEMPS_BG 0 VARIABLE PRET_BG : BG@ ( - --> n ) 49152 PRIORITE DUP >R DUP @ >R ! 2 I2C_PCF8574_C@ 8 LSH 2 I2C_PCF8574A_C@ 255 AND + R> R> ! 0 16 0 DO 2* OVER 1 AND + >R 2/ R> LOOP >R DROP R> ; : BG! ( n --> - ) 0 16 0 DO 2* OVER 1 AND + >R 2/ R> LOOP 49152 PRIORITE DUP >R DUP @ >R ! DUP -8 LSH 2 I2C_PCF8574_C! 2 I2C_PCF8574A_C! DROP R> R> ! ; TACHE: T_BG 0 15 0 DO TEMPO_BG I 2* + @ ?DUP IF 20- 0 MAX TEMPO_BG I 2* + ! DUP 0= IF 1+ 15 I - LSH THEN THEN LOOP NIVEAU_BG @ ?DUP IF TEMPS_BG @ 15 3 PICK 1- - 2* TEMPO_BG + ! >R -1 R> LSH COM OR THEN DUP BG! IF 20 T_BG T_ACTIVE THEN ; : BARRE_GRAPHE ( n de 0 a 16 --> - ) DUP 0< IF DROP PRET_BG @ IF T_BG T_RETIRE 0 DUP NIVEAU_BG ! PRET_BG ! THEN 0 BG! ELSE 17 MOD NIVEAU_BG ! PRET_BG @ NOT IF 49152 T_BG T_AJOUTE -1 PRET_BG ! THEN 20 T_BG T_ACTIVE THEN ; ' BARRE_GRAPHE 4- DUP ' TEMPO_BG 4- DUP 2@ - - SWAP 2! DICO_INIT ( FIN )