( Ajustage du temps reel. Version 0.10 du 9 Decembre 2012. Ecrit par jpb.forth . ) TELECHARGEMENT ( La frequence est en Hertz: 1000 pour une periode moyenne de 1 ms si frequence modulo 1000 = 0 alors duree = frequence/1000 sinon frequence = a*n + b*(n+1) = (a+b)*n + b a+b = 1000 n = frequence modulo 1000 b = frequence - (a+b)*n a = 1000 - b duree1 = n pendant a ms duree2 = n+1 pendant b ms fin si ) DECIMAL 0 VARIABLE DUREE1 0 VARIABLE DUREE2 0 VARIABLE TEMPS1 0 VARIABLE TEMPS2 0 VARIABLE TIC TACHE: T_AJUSTE_TEMPS_REEL TIC DUP >R @ IF TEMPS1 @ DUREE1 @ 0 ELSE TEMPS2 @ DUREE2 @ -1 THEN R> ! 258 ! T_AJUSTE_TEMPS_REEL T_ACTIVE ; : AJUSTAGE ( freq/1000, freq%1000 --> - ) ?DUP IF 1000 OVER - TEMPS2 ! TEMPS1 ! DUP 1- DUREE2 ! DUREE1 ! 65535 T_AJUSTE_TEMPS_REEL DUP >R T_AJOUTE 0 R> T_ACTIVE ELSE 258 ! THEN ; ( 460 800 AJUSTAGE ) ( FIN )