( Script de test des bus CAN A et B. Version 0.10 du 17 Juin 2012. Ecrit par jpb.forth . ) ECHO" 1 - Francais 2 - English ? " [LABEL] LANGUE BELL KEY DUP 49 = OVER 50 = OR NOT [IF] [GOTO] LANGUE [THEN] 49 = [IF] ECHO" Test de l'emission reception CAN: ================================ initialisation des bus CAN A et B compteur_emis = 0 compteur_recu = 0 tant qu'aucune touche du clavier n'est activee, faire emission de compteur_emis sur le bus CAN A attente de 50ms si reception sur le bus CAN B" ECHO" alors compteur_recu = valeur recue emission de compteur_recu+2 sur le bus CAN B fin de si attente de 50ms si reception sur le bus CAN A alors compteur_emis = valeur recue fin de si" ECHO" si compteur_emis>0 alors compteur_emis = compteur_emis+1 fin de si affichage de la valeur du compteur fin de tant que Valeur de compteur_emis: " [ELSE] ECHO" CAN transmission reception test: ================================= CAN A and B buses initialization compteur_emis = 0 compteur_recu = 0 while not any keyboard action, do transmission of compteur_emis on the CAN A bus waiting for 50ms if reception on CAN B bus" ECHO" then compteur_recu = received value transmission of compteur_recu+2 on the CAN B bus end if waiting for 50ms si reception on the CAN A bus then compteur_emis = received value end if" ECHO" if compteur_emis>0 then compteur_emis = compteur_emis-1 end if displaying of compteur_emis value end while Value of compteur_emis: " [THEN] DECIMAL 3 2 2 1 8000000 CAN_A_INIT 3 2 2 1 8000000 CAN_B_INIT 0 [VARIABLE] COMPTEUR_EMIS 2! 0 [VARIABLE] COMPTEUR_RECU 2! [LABEL] TEST [VARIABLE] COMPTEUR_EMIS 4 1 1 CAN_A_TX DROP 50 TEMPO [VARIABLE] COMPTEUR_RECU DUP CAN_B_RX 1 = SWAP 1 = AND SWAP 4 = AND [IF] 2 OVER +2! 4 1 1 CAN_B_TX [THEN] DROP 50 TEMPO [VARIABLE] COMPTEUR_EMIS DUP CAN_A_RX DROP DROP DROP DUP 2@ [IF] 1 OVER -2! [THEN] 13 EMIT 20 SPACES 13 EMIT 2@ . KEYBOARD 0= [IF] [GOTO] TEST [THEN] KEY DROP CR ( FIN )