Pour simuler le fonctionnement d'une montre, on a connect&aecute ;
les sorties 1 à 7 ( les 6 premiers bits ) sur des afficheurs 7
segments ( on demande en fait à rhythm
de fomater
ces sorties en affichage 7 segments). Pour fonctionner, le micro doit
recevoir un reset sur l'entrée 0 ( bit de poid faible ) toutes les
secondes. A chaque seconde, le code démarre donc, teste si c'est
le premier démarrage et initialise dans ce cas le variables, sinon il
met à jour 6 compteurs : secondes, min, heures (unités et dizaines),
puis il effectue le décodage 7 segment et envoie le résultat
sur les sorties, puis s'endort, jusqu'au prochain reset.
Voir le code source : ici
On lance la simulation sur 200 secondes (60000 cycles ) ...
./bin/quartz 300 200 | \
blues -n $(( 300 * 200 )) -i - INPUTS.jzn | \
blues -n $(( 300 * 200 )) -i - MICRO.jzn | \
awk 'BEGIN { ctr = 0 } /^[^0-9]+/ { print $0 } \
/^[0-9]+/ \
{ if (ctr % 80 == 0) print $0 ; ctr += 1 } ' | \
rhythm clock.rcf > clock.html
%% The Blues Simulator version 1.07
%% The Blues Simulator version 1.07
%% Rhythm version 1.05
... quelques heures après, morceaux choisis :
le démarrage
Cycle | quartz | heures | heures | min | min | sec | sec |
0 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
80 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
160 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
240 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
320 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Plus tard ..
Cycle | quartz | heures | heures | min | min | sec | sec |
48000 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48080 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48160 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48240 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48320 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48400 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48480 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48560 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48640 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48720 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48800 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48880 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
48960 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
49040 | 0 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Voir le détail du démarrage : ici