Le registre d' état SREG :
Le registre SREG sert principalement pour les opérations arithmétiques. Il est le reflet des états des manipulations mathématiques et permet d'effectuer des tests afin d'effectuer des éventuels branchements au programme. Si vous comprenez mal sont rôle, les exemples de programmations vous démontrerons tout sont intérêt.
- I : Global Interrupt enable, sert à activer(1) ou interdire(0) toutes les sources d' interruptions. Si ce bit n' est pas activer alors que vous
avez programmer des interruptions, elles ne seront pas prise en compte.
- T : Copy Storage, ce bit joue un rôle de tampon lors de manipulation de bits avec les instructions BLD et BST
- H : Half Cary, signale qu 'une demie-retenue à été réalisé lors de l' emploi d' une instructions arithmétique.
- S : Sign bit, bit de signe résultant d' un OU exclusif avec le bit N ou V.
- V : Overflow bit, dépassement de capacité de calcul.
- N : Negative bit, il signale que le résultat de la dernière manipulation arithmétique est négative.
- Z : Zéro bit, le résultat de la dernière manipulation arithmétique est égale à zéro.
- C: Cary bit, l' opération arithmétique à donné lieu à une retenue ou à un dépassement.
Le registre MCUSR :
Ce registre est une extension de SREG, il permet de déterminer la source d' un RESET
Sur le AT90S8535, les bits 7 à 2 sont inutilisés. Le décodage peut se résumer ainsi :
Le registre MCUCR :
C' est un registre de contrôle en rapport avec la gestion de l' unité centrale.
- SE : Sleep Enable : mise en sommeil de l'unité centrale.
- SM : Sleep Mode : Choix du mode sommeil (arret ou ralentie). Les modes de sommeil ne seront pas étudiés
- ISC11, ISC10 : Interrupt Sense Control, définition de prise en compte de l'interruption externe INT1 *.
- ISC01, ISC00 : Interrupt Sense Control, définition de prise en compte de l'interruption externe INT0 *.
* Tableau récapitulatif des modes de programmation INT0 et INT1 :
|
|
|
|
|
|
|
|
|
|
|
|
sur changement de niveau (0/1 ou 1/0)
|
|
|
|
|
|
|
|
|
|
|
|
|
Le Pointeur de pile :
Le pointeur de pile est en fait constitué de 2 registres : SPL et SPH. La pile sert d'endroit de stockage du compteur ordinal, lequel permet de conserver par exemple, l'adresse de retour du programme suite à un appel de procédure (RCALL), ou bien d'une interruption.
Plus l'espace de la pile est grand, plus le programme pourra faire appel à d'autre sous-programme imbriqués, et interruptions en nombres importantes.
A la suite d'un Reset le pointeur de pile contient l'adresse 60$, adresse qu'il faut immédiatement changé afin de ne pas interférer avec les variables des registres du système. On y inscrira le plus tot possible après un reset la valeur la plus élevé de la RAM.
Cartographie des registres :
|
|
|
|
Registre généraux de travail
(voir architecture) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Convertisseur analogique |
|
|
|
|
|
|
Contrôle et statut du CAN
|
|
|
Multiplexeur, sélection de la voie à échantillonner
|
|
|
Comparateur analogique |
Contrôle et statut du Comparateur
|
|
|
UART |
Vitesse de communications (Bauds)
|
|
|
|
|
|
|
|
|
|
|
|
SPI |
|
|
|
|
|
|
|
|
|
Port parallèle D |
Adresse des broches (Pin)
|
|
|
|
|
|
|
|
|
Port parallèle C |
Adresse des broches (Pin)
|
|
|
|
|
|
|
|
|
Port parallèle B |
Adresse des broches (Pin)
|
|
|
|
|
|
|
|
|
Port parallèle A |
Adresse des broches (Pin)
|
|
|
|
|
|
|
|
|
EEPROM |
|
|
|
|
|
|
|
|
|
|
|
|
Watchdog |
|
|
|
Timer / compteur 2 (8 bits) |
Statut du mode asynchrone
|
|
|
|
|
|
|
|
|
Contrôle |
|
|
Timer / compteur 1 (16 bits) |
Entrée poids faible de capture |
|
|
Entrée poids fort de capture |
|
|
Timer/compteur B sortie comparaison poids faible |
|
|
Timer/compteur B sortie comparaison poids fort |
|
|
Timer/compteur A sortie comparaison poids faible |
|
|
Timer/compteur A sortie comparaison poids fort |
|
|
Timer/compteur poids Faible |
|
|
Timer/compteur poids Fort |
|
|
Contrôle Timer/compteur poids Faible |
|
|
Contrôle Timer/compteur poids Fort |
|
|
Timer / compteur 0 (8 bits) |
Timer/compteur 0 |
|
|
Contrôle Timer/compteur 0 |
|
|
MCU |
Statuts général MCU |
|
|
Contrôle Général MCU |
|
|
Interruptions |
Drapeau d' interruption Compteur/Timer |
|
|
Masque d' interruption Compteur/Timer |
|
|
Drapeau d' interruption Généraux |
|
|
Masque d' interruption Généraux |
|
|
Pointeur de pile |
Pointeur de pile poids faible |
|
|
Pointeur de pile poids fort |
|
|
Registre SREG |
Statuts Registre |
|
|
|