Upload
monica-marin-coronel
View
221
Download
4
Tags:
Embed Size (px)
Citation preview
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
1
Laboratorio de microprocesadores
Real Time Interrupt HC(S)12
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
2
RTI (HCS12)
En en el desarrollo de software en tiempo real es necesario contar con una interrupción periódica.
El motivo fundamental es que mediante una interrupción periódica podemos “muestrear” los eventos que genera el hardware evitandonos asi el gadfly loop y ademas limitar el numero de lineas de interrupcion dedicadas (recurso que puede ser escaso y dificil de administrar cuando el numero de interrupciones es grande).
Todos los microcontroladores modernos poseen un generador periódico de interrupciones. Estos generadores pueden generar interrupciones periódicas a diferentes frecuencias programables por software.
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
3
Antes de estudiar la RTI veamos de donde se obtiene el reloj que la alimenta.
RTI (HCS12)
16 MHz
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
4
PLL
RTI (HCS12X)
Nota: Synr [$34]=4 Refdv [$35]=1
80 MHz
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
5
RTI Clock
RTI (HCS12)
16 MHz
80 MHz
40 MHz
16 MHz
SCM: Self Clock Mode
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
6
RTI (HCS12)
16 MHz
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
7
RTI (HCS12)
16 MHz
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
8
RTI (HCS12)
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
9
RTI (HCS12)
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
10
Ejemplo RTI (HCS12)
Divider Chain
Si RTICTL=01011001b
RTR[6:4]=5 (101) estamos dividiendo por 24
RTR[3:0]=9 (1001) Estamos dividiendo por 10
La cadena dividirá por:
N= 1024 * 24 *10 = 210 24 10 = 10 214 (Ver Tabla)
TRTI = (16MHz/N)-1 = 10.24 mseg
Es decir que recibiremos una interrupción cada 10.24 mseg
1
1024 RTR[6:4]= 5 RTR[3:0]= 1016 MHz TRTI
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
11
RTI (HCS12)
CPURTI IRQ
D QVcc
Interrupt Flag
Interrupt Enable
Clear Interrupt Flag
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
12
RTI (HCS12)
CPURTI IRQ
D QVcc
Interrupt Flag
Interrupt Enable
Clear Interrupt Flag
21/04/23 Laboratorio de microprocesadores Ing. Claudio Muñoz- Ing. Daniel A.
Jacoby
13
Para borrar el RTIF hay que escribirle un “1” !!!!
Interrupciones (HCS12)
´1´