Pl2 INTER 2.DOC/fr
suite sur les INTERRUPTIONS ...
---------------------------
14) TBCR :Identique à TACR, sauf que ce regsitre controle le TIMER B
($FFFA1B)
15) TCDCR:Vecteur bit ayant le mème role que TACR et TBCR pour les
TIMER C et TIMER D, mais ici seul le DELAY MODE est dis-
ponible.
($FFFA1D)
Les bits 0 à 2 sont r‚serv‚s au TIMER C
Les bits 4 à 6 sont r‚serv‚s au TIMER D
Voir le tableau de TACR pour la signification des bits...
Je vous rappelle que nous n'utiliserons pas ces TIMERS car
ils sont d‚jà utilis‚s par le système à l'origine.
16) à 19) TADR,TBDR,TCDR,TDDR (à partir de $FFFA1F):
Voilà les registres de DONNEES des 4 TIMERS ...
20) à 24) SRC,CR,RSR,TSR,DR (à partir de $AFFF27):
Des registres qui ne sont pas utilis‚s par les TIMERS, et ils
se contentent de controler les ‚missions de caractères...
Maintenant que vous ètes familiaris‚ avec les diff‚rents registres
du MFP 68901, vous pourrez commencer à r‚aliser vos premiers pro-
grammes sous interruption.
Pour modifier un registre du MFP, il suffit de connaitre l'adresse
du registre et d'y d‚poser les donn‚es qu'il faut.
- Voilà comment il faut procèder pour mettre une routine sous
interruption:
--------------------------------------------------------------------
* On passe en MODE SUPERVISEUR pour pouvoir atteindre les registre
du MFP.
* On met à 0 le bit correspondant au TIMER utilis‚ dans le registre
IMR.(Avec en AND #BBB,destination ou un BCLR #BBB,destination)
* On met à 0 le bit correspondant au TIMER utilis‚ dans le registre
ISR.
* On met à 0 le bit correspondant au TIMER utilis‚ dans le registre
IPR.
* On met à 0 le bit correspondant au TIMER utilis‚ dans le registre
IER.
* On installe notre routine:
.Soit en d‚posant l'adresse de notre routine directement dans le
VECTEUR D'EXCEPTION correspondant au TIMER utilis‚:
$134 pour le TIMER A, $120 pour le TIMER B, $114 pour le TIMER C,
$110 pour le TIMER D (avec MOVE.L #ADRESSE,$vecteur)
(Voir le Tableau des vecteurs d'exception)
Puis en modifiant directement les REGISTRES DE CONTROLE et DE DONNEE
du TIMER en d‚posant les nouvelles valeurs aux adresses de ceux-ci.
(Avec MOVE.B #VALEUR,$adresse)
(Voir les adresses des REGISTRES TACR,TBCR,TCDCR (CONTROLE) et les
adresses des REGISTRES TADR,TBDR,TCDR,TDDR (DONNEE) )
.Soit en appelant une fonction de l'XBIOS qui le fait à notre place:
C'est la fonction XBTIMER de l'XBIOS.
Les paramètres à passer sont:
L-M:Adresse de la routine
MOT:Valeur du registre de DONNEE
MOT:Valeur de registre de CONTROLE
MOT:Le code du TIMER (0=TIMER A,1=TIMER B,2=TIMER C,3=TIMER D)
MOT:Code de la fonction = $1F
Il faudra encore:
.Mettre le bit du registre IER correspondant à notre TIMER à 1 (Pour
valider notre routine sous interruption)
.Mettre le bit du registre IMR correspondant à notre TIMER à 1
----------------------------------------------------------------------
Et voilà, ma routine est install‚e !!!
La routine elle même:
---------------------
La routine à mettre sous interruption devra pouvoir s'ex‚cuter
entièrement avant l'appel suivant du TIMER car sinon attention
au plantage !!
Celle-ci ne devra donc pas être trop longue:
On ne pourra pas par exemple mettre une routine qui demande 0,5
secondes pour s'ex‚cuter entièrement sous interruption et règler
sa fr‚quence d'appel à 0,007 secondes ...
Votre routine sous interruption devra toujours se terminer par:
.Une mise à 0 du bit correspondant au TIMER utilis‚ du registre ISR
,pour indiquer au MFP que la routine se termine.
--------------------------------
Avec BCLR #5,$FFFA07 pour le TIMER A (Sur ISRA)
ou BLCR #0,$FFFA11 pour le TIMER B (Sur ISRB)
--------------------------------
.Un RTE (Return From Exception)
---
De plus, comme votre routine s'ex‚cute à intervals r‚guliers, je vous
d‚conseille fortement d'utiliser les registre DN ou AN (mème SP) car
ceci peut provoquer des changments brusques au niveaux des registres
conscern‚s dans la programme principal.(Le programme sous interruption
s'ex‚cutant sans interrompre le programme principal, nous en verrons
une très bonne illustration dans un prochain exercice)
Le programme sous interruption pourra toutefois faire appel à des
adresses du segment DATA ou BSS pour lire ou d‚poser des valeurs...
Voilà pour la th‚orie, je vous conseille fortement de relire tout
le chapitre à fond car maintenant viennent les EXERCICES ...
-----------------
PIECHOCKI Laurent
8,Impasse Bellevue Suite dans le fichier:EXOS_4.DOC
57980 TENTELING ----------
Back to ASM_Tutorial