CPC Rulez
https://cpcrulez.fr/forum/

Boucle versus interruptions
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6294
Page 1 sur 1

Auteur :  secmast [ 06 Déc 2019, 14:18 ]
Sujet du message :  Boucle versus interruptions

Bonjour,
Je me présente, Jean-Louis A.K.A secmast. J’ai 56 ans et je commence ENFIN à programmer en assembleur.
Donc j’ai commencé par programmer une Horloge.
Le programme se compose de 4 parties

1) Initialisation
Classique, rien à dire.

2) Timer
Quatre boucles imbriquées pour fournir le timing de 1 secondes
Sous ces boucles deux sous sections. Une « comptage » pour la fonction horloge/Chronomètre et une « décompte » pour le timer.

3) Hexadécimal vers décimal
Section qui sert à séparer les dizaines des unités pour les heures, minutes et secondes. Nécessaire pour l’affichage final.

4) Affichage Graphique
Et enfin la section d’affichage graphique de l’heure.

Pour l’instant j’ai une précision de 6.95 µS vers l’avant ou encore une avance 6 secondes par jour.
J’aimerais pouvoir utiliser les interruptions pour le timer mais je n’ai aucune idée du comment faire.
Alors je suis preneur d’un peu d’aide.

Auteur :  marcel [ 06 Déc 2019, 17:46 ]
Sujet du message :  Re: Boucle versus interruptions

il y a 300 interruptions par secondes (en temps normal)

et pas mal de temps machine entre chaque donc...

une routine en interruption qui (dé)compte jusqu'à 300 et pose un flag à du code interruptible qui attend

de là, tu as 1s pour mettre à jour ton affichage, ce qui devrait se faire sans problème

les interruptions en IM 1 sautent à l'adresse #38, soit tu mets ton code ici, soit tu poke un JP vers ta routine. Ne pas oublier le EI : RET à la fin

Auteur :  secmast [ 07 Déc 2019, 19:18 ]
Sujet du message :  Re: Boucle versus interruptions

Merci Marcel,

L'affichage prend 113 ms. Ben oui j'utilise des pseudo sprites de 78*160 pixels. 6 à tracer chaque secondes.


Avec les interrupts donc, rien de plus que mes boucles imbriquée. 3ms de granularité et 16 bits a gérer (300 fois par seconde) au lieu de 8 bits.
Sachant qu'avec les registres en 8 bits nous avons les flags et qu'en utilisant les registres 16 bits nous ne les avons pas, ça ne m'apporte rien de plus.

Mais Merci

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/