GPA770: Microélectronique appliquée

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Module Systèmes d’exploitation
Le Concept du programme enregistré
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Les numéros 70 –
Les numéros
Les identités remarquables
GEF 435 Principes des systèmes d’exploitations
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Système d’exploitation : Assembleur
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Système d’exploitation : Assembleur
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Maîtrise en technologie de l’information
Gestion des Périphériques
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Synchronisation et communication entre processus
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
LES SYSTEMES AUTOMATISES
Calculs et écritures fractionnaires
RACINES CARREES Définition Développer avec la distributivité Produit 1
GPA770: Microélectronique appliquée
GPA770: Microélectronique appliquée
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Aire d’une figure par encadrement
Mécanismes d'exécution et de communication
Répéter dans un programme avec une Instruction itérative
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Université du Québec École de technologie supérieure GPA770: Microélectronique appliquée Éric Granger B.1b-1 CONTENU DU COURS.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Partie C − Concepts matériels
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
3-Présentation d’un µP simple
Exemple de mise en oeuvre
GPA770: Microélectronique appliquée
On utilisera la version HC912DG128
Cours Système LI324 Les Interruptions Cours Système LI324
Semaine 5 Registres spéciaux et périphériques internes Projet initial en ingénierie informatique et travail en équipe INF1995 Jérôme Collin et al.
L3 Instrumentation Pétrolière S6
Architecture d’un ordinateur
Transcription de la présentation:

GPA770: Microélectronique appliquée CONTENU DU COURS GPA770: Microélectronique appliquée Éric Granger

Partie C − Concepts matériels C.1 Configurations matérielles: architecture du système, mémoire, et ports d’e/s C.2 Gestion des exceptions: réponses aux remises-à-zéro et aux interruptions avec le 68HCS12 vecteur et priorité d’exceptions, et routines de service d’interruption C.3 Module de temporisation: module de temporisation standard du 68HC12 saisie des entrées et comparaison de sorties C.4 Convertisseurs analogique-numérique: processus de conversion système de conversion du 68HC12 C.5 Interfaces de communications sérielles: communications sérielles avec un microcontrôleur interfaces sérielles multiples du 68HC12: SCI et SPI GPA770: Microélectronique appliquée Éric Granger

Sommaire de la section C.2 C.2 Gestion des exceptions: Exceptions − remises-à-zéro et interruptions Sous-systèmes du 68HC12 pour gérer les exceptions Vecteurs d’exception Réponses aux interruptions Routines de service d’interruption Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée C.2(1) Exceptions Déf.: un événement qui vient suspendre l’exécution normal d’un programme Catégories d’exceptions: remise-à-zéro (RAZ): en réponse à cet événement, le CPU exécute une routine d’initialisation, et repart dans un état connu (stable) interruption (INT): en réponse à cet événement, le CPU exécute une routine de service, et repart à l’adresse à laquelle le programme a été suspendu GPA770: Microélectronique appliquée Éric Granger

GPA770: Microélectronique appliquée C.2(1) Exceptions GPA770: Microélectronique appliquée Éric Granger

Sommaire de la section C.2 C.2 Gestion des exceptions: Exceptions − remises-à-zéro et interruptions Sous-systèmes du 68HCS12 pour gérer les exceptions Vecteurs d’exception Réponses aux interruptions Routines de service d’interruption Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Rôle des types de sous-systèmes dans le 68HC12: CPU12: unité de traitement central Gestion des exceptions: interrompre l’exécution normal d’un programme Module LIM: combine les buses DATA, ADDR et CTRL Mémoire: stocker des configurations (bloc), des variables (RAM) et des programmes (ROM) Périphériques d’entrée/sortie: ports d’entrée/sortie: échanger des données avec le monde externe temporisation: capter des entrées, générer des sorties, accumuler des impulsions, PWM conversion de données: convertir un signal analogique en codes binaires non-signés communication sérielle: échanger de données par communications asynchrones (SCI) et synchrones (SPI) GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 MC9S12C32 GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 RESET IRQ XIRQ GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Taxonomie des exceptions du 68HC12: GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Remise-à-zero (‘reset’ ou RAZ) du système Étape de traitement – lorsqu’une RAZ est enclenchée, le CPU: place le vecteur de la RAZ dans le PC (i.e., une adresse mémoire qui correspond au type de RAZ); effectue un branchement vers cette adresse; réexécute l’initialisation du système pour reprendre dans un état stable et bien défini. remarque: on ne revient pas à l’endroit d’exécution atteint avant que la RAZ ait eu lieu. GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Événements qui enclenchent une RAZ du système: RAZ d’alimentation (‘power on’): quand l’alimentation est appliqué au 68HC12 RAZ externe: le 68HC12 est équipé avec une broche de RAZ qui est active sur une valeur basse: . sur la carte de développement du laboratoire, cette broche est connectée à un des boutons poussoirs RAZ de surveillance d’horloge − CM (‘Clock Monitor’): quand la fréquence de l’horloge du système tombe sous un certain seuil, ou quand l’horloge s’arrête GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 RAZ de surveillance d’ordinateur − COP (‘Computer Operating Properly’): quand il y a un gel ou un défaut dans l’exécution du programme sous-système COP: normalement désactivé lors du développement, mais représente une mesure préventive importante lors d’opération consiste d’une minuterie configurable qui décompte: le programme doit écrire $55, suivi de $AA, dans un registre spécifique avant l’expiration de la minuterie sinon, on suppose un gel du programme, et une RAZ COP est enclenchée GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Registres du bloc associés au CM et au COP: [$003C] COPCTL − registre de contrôle du COP (‘COP Control Register’): permet d’activer et configurer les RAZ de type CM et COP permet de spécifier le délai d’expiration de la minuterie [$003F] ARMCOP − registre de minuterie COP (COP Reset Register’): la séquence de $55 et de $AA doit être écrite dans ce registre avant l’expiration de la minuterie GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Registre COPCTL: BIT FONCTION WCOP Si = 1, mode Window (dernier 25%) du temps d’expiration RSBCK Reste acif en BDM CR2:CR0 spécifient le délai d’expiration de la minuterie, et permet l’activation du système COP GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 CR[2:0] − intervalle d’expiration de minuterie: 16MHz/2^14 = 976Hz. = 1 ms. 16MHz/2^24 = 1Hz. = 1 sec. GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Exemple: Programme qui écrit la séquence $55 et $AA dans ARMCOP. Le délai d’expiration de minuterie est de 1sec COPCTL EQU $003C ; adresse de COPCTL ARMCOP EQU $003F ; adresse de COPRST TIMEOUT EQU $07 ; activer avec expiration de 1sec ORG $4000 LDAA #TIMEOUT STAA COPCTL ; active le COP et fixe l’expiration ▪▪▪▪ Debut: MOVB #$55, ARMCOP ; écrit $55 au COPRST MOVB #$AA, ARMCOP ; écrit $AA au COPRST BRA Debut GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Classification des exceptions du 68HC12: GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Interruption (INT) – événement prioritaire qui est planifié mais imprévu dans le temps, pour: la coordination des activités avec périphériques d’e/s, sans devoir constamment vérifier leur état la gestion élégante des erreurs rappeler au CPU d’effectuer une tâche routinière Suite à la détection de cet événement, le CPU: permet une suspension ordonnée du programme principal exécute une routine de service reprend à l’adresse à laquelle le programme a été suspendu GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Deux techniques logiciels pour la coordination d’activités avec périphériques d’e/s: approche par balayage de ports (‘polling’): le CPU vérifie périodiquement l’activation d’un drapeau qui indique un événement ► le programme est occupé à attendre un drapeau approche par interruption: une INT indique au CPU lorsqu’un événement a eu lieu ► le programme peut exécuter d’autres tâches GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Catégories d’INT ─ selon le masquage: activation d’un masque ≡ le CPU ne peut percevoir une INT GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Catégories d’INT ─ selon le masquage: INT non-masquable ≡ le masque ne peut être activé par instructions pour le TRAP et SWI: on ne peut jamais les masquer pour le XIRQ: le masque est normalement activé (X=1) suite à une RAZ ou un XIRQ, et désactivé (X=0) une seule fois quand le système est stable à l’aide d’un instruction INT masquable ≡ le masque peut être activé et désactivé par instructions le masque est normalement activé (I=1) par instructions, ou avec une RAZ, et désactivé (I=0) par instructions le masque s’active temporairement lors d’un INT non-masquable GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Registre à code de contrôle (CCR) à 8 bits: GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Étapes d’activation d’une INT masquable: Activation du système global: il faut désactiver le bit de contrôle I du CCR (fixer I= 0) le bit ‘I’ est contrôlé par les instructions spécialisées: CLI: ‘Clear Interrupt Mask’ – active le système d’INT NM global (I=0) SEI: ‘Set Interrupt Mask’ – désactive le système d’INT NM global (I=1) Activation du système local: il faut activer le matériel d’interruption spécifique GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Événements qui peuvent enclencher une INT non-masquable: instructions non existantes: si le CPU tente d’exécuter une instruction inconnue ou non spécifiée Exemple: instructions à 2 octets: p. 396 CPU12 $18 $30 à $18 $39 et $18 $40 à $18 $FF l’instruction d’INT logiciel: si le CPU exécute l’instruction SWI requête d’interruption non-masquable externe: si la tension sur la broche est basse GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Événements qui peuvent enclencher une INT masquable: requête d’interruption masquable externe: selon la valeur sur la broche (actif bas) interruptions en temps réel (RTI): généré selon une intervalle périodique qui est pré-définit par l’usager pour rappeler l’exécution d’une tâche routinière les canaux du système de temporisation (TIM): généré lorsqu’un événement (pré-définit par l’usager) à lieu sur un de ses 8 canaux GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 le débordement du compteur au TIM: généré quand le drapeau TOF (‘Timer Overflow Flag’ − bit 7 du registre TFLG2) devient actif quand le compteur à 16 bits compte jusqu’à 65,536 et déborde utile pour réaliser un délai ou pour chronométrer des événements le débordement de l’accumulateur d’impulsions au TIM: généré quand le compteur interne de l’accumulateur d’impulsions déborde GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 la transition d’entrée de l’accumulateur d’impulsions au TIM: généré chaque fois qu’un événement a lieu à l’accumulateur d’impulsions utile pour compter des événements externes au 68HC12 l’interfaces de communications sérielles: généré pour indiquer l’état d’une transmission avec modules SCI et SPI le système de conversion N-A (ATD): généré pour indiquer lorsque la conversion N-A est complète le système de réveil: généré pour réveiller le 68HC12 en mode WAIT ou STOP GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Exemple: activation de l’INT Étapes d’activation d’une INT masquable: activation global: fixer le bit I du CCR à 0 avec l’instruction CLI activation local: fixer le bit 6 (IRQEN = 1) du registre INTCR (‘Interrupt Condition Register’ – adresse $001E) Remarque − le bit 7 (IRQE) du registre INTCR permet de sélectionner la sensibilité aux transitions: IRQE = 0: la broche est configurée pour reconnaître le niveau actif bas IRQE = 1: la broche est configurée pour reconnaître la transition descendante GPA770: Microélectronique appliquée Éric Granger

C.2(2) Sous-systèmes du 68HC12 Exemple: activation de l’INT INTCR EQU $001E ; adresse du registre INTCR INTCR_INI EQU $C0 ; initialise la valeur de INTCR ORG $4000 CLI ; désactive le bit I du CCR LDAA #INITCR_INI STAA INTCR ; activer INTCR ▪▪▪▪ GPA770: Microélectronique appliquée Éric Granger

Sommaire de la section C.2 C.2 Gestion des exceptions: Exceptions − remises-à-zéro et interruptions Sous-systèmes du 68HC12 pour gérer les exceptions Vecteurs d’exception Réponses aux interruptions Routines de service d’interruption Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

C.2(3) Vecteurs d’exception Déf.: mécanisme qui redirige le CPU vers l’action correspondante à un exception chaque exception demande un traitement ou une routine qui est spécifique: chaque RAZ → réinitialisation chaque INT → routine de service d’INT (RSI) qui est stockée en mémoire Vecteur d’interruption ≡ adresses mémoires (de 16 bits) qui indiquent au CPU les adresses de départ des routines de service. GPA770: Microélectronique appliquée Éric Granger

C.2(3) Vecteur d’exception Le vecteur d’exceptions: contient toutes les adresses des routines l’emplacement du vecteur: adresses mémoire $FF80 à $FFFF les 128 derniers octets du modèle de mémoire chacune de ces adresses est associée avec un type spécifique d’exception remarque: l’usager doit créer le lien aux vecteurs GPA770: Microélectronique appliquée Éric Granger

C.2(3) Vecteur d’exception Vecteur d’exception pour le 68HC12: non-masquable priorité plus élevée RAZs masquable priorité plus basse GPA770: Microélectronique appliquée Éric Granger

C.2(3) Vecteur d’exception Priorité des exceptions: les exceptions sont exécutées dans l’ordre descendante de priorité, dictée par la table de vecteurs: une exception ne peut interrompre l’exécution d’une routine même si elle détient une priorité plus élevée. Ordre: RAZ: priorité fixe, et ne peut être changée interruptions non-masquables: priorité fixe, et ne peut être changée interruptions masquables: priorité fixe qui peut être modifiée en écrivant une séquence de bits spécifique au registre HPRIO (‘High Priority Interrupt’ – adresse $001F) la dernière colonne de la table donne la valeur qui doit être écrite au HPRIO pour lui allouer la plus haute priorité GPA770: Microélectronique appliquée Éric Granger

Sommaire de la section C.2 C.2 Gestion des exceptions: Exceptions − remises-à-zéro et interruptions Sous-systèmes du 68HC12 pour gérer les exceptions Vecteurs d’exception Réponses aux interruptions Routines de service d’interruption Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Étapes d’exécution d’une instruction: lecture − charger le op-code et opérants de la mémoire au registre d’instructions décodage − interpréter l’instruction et traduire en actions du CPU exécution − effectuer les opérations liées à l’instruction. lecture décodage exécution GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Réponse générale aux INT du 68HCS12: RSI lecture décodage exécution Sauf l’instruction REV de la logique floue GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Réponse spécifique aux INT: Entrée en INT: le CPU permet une suspension ordonnée du programme principal termine l’exécution normal de l’instruction en cours stocke tous les registres CPU sur la pile (CCR inclus) on suppose que tous ces registres sont pertinents au moment de la suspension transfert le contrôle d’exécution à une RSI qui est spécifique à l’interruption GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Réponse spécifique aux INT: (suite) Sortie d’une INT: à le fin de la RSI, exécute l’instruction RTI restaure l’état original du processeur (la valeur de tous les registres CPU) avec la pile (CCR inclus) transfert le contrôle d’exécution au programme principal, là ou il était avant l’INT GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Utilisation de la pile: lors d’une INT, le CPU place les registres CPU sur la pile dans l’ordre suivant: PC Y X D (B:A) CCR quand l’instruction RTI est exécutée, le CPU retire les registres clés dans l’ordre inverse GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Instruction RTI (‘Return from Interrupt’): RTI connaît le format de l’état stocké sur la pile, et restore correctement cet état dans les registres il configure aussi le CPU pour gérer les INT futurs après le retour, le programme principale n’a aucun idée qu’une interruption a eu lieu. GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Instruction WAI (‘Wait for Interrupt’): stocke la valeur de tous les registres clés sur la pile ne procède pas à la prochaine instruction place le 68HCS12 en mode basse puissance en attente pour une interruption arrête l’horloge du CPU Avantages: accélérer l’entrée à la RSI (car le CPU a déjà stocké les registres clés sur la pile) réduire sa consommation de puissance (car il ne doit pas exécuter une boucle infinie en attente pour l’interruption) GPA770: Microélectronique appliquée Éric Granger

C.2(4) Réponses aux interruptions Instruction STOP (‘Stop Processing’): stocke la valeur de tous les registres clés sur la pile ne procède pas à la prochaine instruction place le 68HCS12 en mode basse puissance en attente pour une interruption arrête toutes les horloges du HCS12. Avantages: accélérer l’entrée à la RSI (car le CPU a déjà stocké les registres clés sur la pile) réduire sa consommation de puissance (car il ne doit pas exécuter une boucle infinie en attente pour l’interruption) GPA770: Microélectronique appliquée Éric Granger

Sommaire de la section C.2 C.2 Gestion des exceptions: Exceptions − remises-à-zéro et interruptions Sous-systèmes du 68HC12 pour gérer les exceptions Vecteurs d’exception Réponses aux interruptions Routines de service d’interruption Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

C.2(5) Routines de service d’interruption Étapes préliminaires pour gérer une INT: initialiser le pointeur de pile initialiser la table de vecteur (approche par directives) écrire une RSI pour permettre au CPU de répondre à l’INT spécifique déterminer comment activer l’INT activation local: fixer un bit d’activation spécifique activer les interruptions globales GPA770: Microélectronique appliquée Éric Granger

C.2(5) Routines de service d’interruption Exemple: écrire une RSI pour répondre à une INT qui a lieu sur la broche quand la broche tombe à ‘0’, le programme principale est interrompu pour exécuter une RSI stockée à partir de l’adresse ‘Broche’ on suppose que ‘Broche’ est brûlé en ROM, à l’adresse du vecteur d’exception pour ($FFF2:$FFF3) fonction de la RSI: le message ‘Bonjour du IRQ’ est imprimé à l’écran GPA770: Microélectronique appliquée Éric Granger

C.2(5) Routines de service d’interruption Exemple: écrire une RSI pour ;************************************************** ;* Macro * include DBUG12M.MAC ;* Définitions * stktop EQU $1000 ; sommet de pile intcr EQU $001E ; adresse du registre INTCR irqini EQU $C0 ; les bits IRQEN à 1et IRQE à 1 ;* Vecteurs RAZ reset* ORG $FFFE FDB Start GPA770: Microélectronique appliquée Éric Granger

C.2(5) Routines de service d’interruption Exemple: écrire une RSI pour ;************************************************** ;* Vecteur de IRQ * ORG $FFF2 FDB Broche ; ou DC .W Broche ;* Les constantes, routines et programme * ORG $4000 salut: DC.B ‘Bonjour du IRQ’,$00 GPA770: Microélectronique appliquée

C.2(5) Routines de service d’interruption ;************************************************** ;* Routine de service d’interruption * Broche: printf #salut ; imprime le message à l’écran RTI ; retour au main ;* programme principal * Start: LDS #stktop ; initialise le SP CLI ; activation global d’interruptions masquables LDAA #irqini ; le $C0 STAA intcr ; activation local d’interruption du IRQ Here: BRA Here ; attendre une IRQ include DEBUG12M.ASM END GPA770: Microélectronique appliquée Éric Granger

Sommaire de la section C.2 C.2 Gestion des exceptions: Exceptions − remises-à-zéro et interruptions Sous-systèmes du 68HC12 pour gérer les exceptions Vecteurs d’exception Réponses aux interruptions Routines de service d’interruption Système d’interruption en temps-réel GPA770: Microélectronique appliquée Éric Granger

C.2(6) Système d’interruption en temps-réel Le système d’interruption en temps-réel: permet d’interrompre le 68HCS12 à des intervalles régulières Ce système consiste en 3 registres: CRGINT (‘Clock and Reset Générator INTerrupt’): permet d’activer le RTI (RTIE = 1) RTICTL (‘Real Time Interrupt Control’) fixer le taux d’interruptions (selon RTR[6:0]) CRGFLG (‘Clock and Reset Générator INTerrupt’): drapeau RTIF GPA770: Microélectronique appliquée Éric Granger

C.2(6) Système d’interruption en temps-réel Exemple: programme qui utilise le système pour rappeler au 68HSC12 de vérifier le niveau de puissance d’une pile électrique à chaque 15 minutes, c. à d. à chaque 900 secondes. 36900 X 25ms = 900 sec. 36621X24,576ms = 899,997696 sec GPA770: Microélectronique appliquée Éric Granger

C.2(6) Système d’interruption en temps-réel Exemple: vérifier le niveau de voltage d’une pile ;************************************************* ;* Définitions * STKTOP EQU $1000 ; sommet de pile RTICTL EQU $0007 ; adresse de RTICTL CRGFLG EQU $0003 ; adresse de CRGFLG CRGINT EQU $0004 ; adresse de CRGINT CPTDEP EQU 36621 ; valeur de compteur 36621X24,576ms. RTIF EQU $80 ; masque du RTIFLG CTLMSK EQU $75 ; masque du RTICTL 24,576 ms. RTIADD EQU $FFF0 ; vecteur d’interruption ;* Début des variables en RAM* ORG $800 Compteur: ds.w 1 ; 36621X24,576 ms. GPA770: Microélectronique appliquée Éric Granger

C.2(6) Système d’interruption en temps-réel ;************************************************* ;* RAZ reset * ORG $FFFE ; Adresse du vecteur du RAZ DC.W Debut ; Adresse du début du ; programme ;* Vecteur d’interruption * ORG RTIADD ; Adresse du vecteur $FFF0 DC.W RTI_INT ; Adresse de la routine de service ;* Début constantes, routines de service, programme en ROM* ORG $4000 GPA770: Microélectronique appliquée

C.2(6) Système d’interruption en temps-réel ;************************************************** ;* Routine de service d’interruption * RTI_INT: MOVB #RTIF,CRGFLG ; acquitter l’interruption LDD Compteur ; 16 bits SUBD #1 STD Compteur ; 36621 fois ? BNE FinInt ; non MOVW #CPTDEP,Compteur ; réinitialiser le compteur . Vérifier la pile . FinInt: RTI ; retour GPA770: Microélectronique appliquée

C.2(6) Système d’interruption en temps-réel ;************************************************** ;* Programme principal * Debut: LDS #STKTOP InitRTI: MOVB #CTLMSK,RTICTL ; p. 263 MC9S12C128V1.pdf ; pour le $75 = 24,576 ms. MOVW #CPTDEP,Compteur ; initialiser le compteur à 36621 MOVB #RTIF,CRGFLG ; écrire 1 = 0 dans le drapeau BSET CRGINT,$80 ; activation locale int. CLI ; activation globale int. Encore: WAI ; attendre les interruptions BRA Encore ; pour l’éternité GPA770: Microélectronique appliquée