( Pilote du petit clavier. Version 0.10 du 17 Juin 2012. Ecrit par jpb.forth . ) TELECHARGEMENT DECIMAL ( Petit clavier: -------------- Bit[7] = 0xFFF ei touche enfoncee, 0x000 sinon Bits[6..4] = voyants allumés si le bit correspondant est a 1 Bits[3,2] = numero de la ligne (0 en haut) Bits[1,0] = numero de la colonne (0 a gauche) Les bits[3..0] sont memorises lorsque la touche est relachee ) HERE 49 C, 50 C, 51 C, 43 C, 52 C, 53 C, 54 C, 45 C, 55 C, 56 C, 57 C, 09 C, 42 C, 48 C, 35 C, 08 C, CONSTANT TABLE_CLAV 0 VARIABLE MEM_CLAV 0 VARIABLE REP_CLAV 0 VARIABLE PRG_CLAV TACHE: T_CLAV REP_CLAV @ ?DUP IF 20- 0 MAX 7 I2C_PCF8574_C@ DUP MEM_CLAV ! 0< IF DUP 0= IF 100+ MEM_CLAV @ 15 AND TABLE_CLAV + C@ PRG_CLAV 2@ EXECUTE THEN ELSE DUP XOR DUP PRG_CLAV 2@ EXECUTE THEN REP_CLAV ! ELSE 7 I2C_PCF8574_C@ DUP MEM_CLAV @ - IF DUP MEM_CLAV ! DUP 0< IF 15 AND TABLE_CLAV + C@ 500 REP_CLAV ! ELSE DUP XOR THEN PRG_CLAV 2@ EXECUTE ELSE DROP THEN THEN ; : SYNC_CLAVIER ( adr_prg --> - ) 49152 PRIORITE DUP >R DUP @ >R ! DUP IF PRG_CLAV 2! 7 I2C_PCF8574_C@ MEM_CLAV ! 20 T_CLAV 49152 OVER T_AJOUTE T_PERIODE ELSE DUP MEM_CLAV ! REP_CLAV ! T_CLAV T_RETIRE THEN R> R> ! ; : SORT_CLAVIER ( n --> - ) 49152 PRIORITE DUP >R DUP @ >R ! 7 AND 4* 4* DUP MEM_CLAV DUP >R @ -113 AND + R> ! -113+ 7 I2C_PCF8574_C! R> R> ! ; ' SYNC_CLAVIER 4- DUP ' TABLE_CLAV 4- DUP 2@ - - SWAP 2! DICO_INIT ( FIN )