Vous êtes sur la page 1sur 22

Universidad de Mlaga

Departamento de Tecnologa Electrnica

Grado en Ingeniera de Tecnologas de Telecomunicacin

Microcontroladores

Ejercicios Tema 6: Temporizadoresv2

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.0

ndice

1. Enunciados 2. Solucin

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.1

ndice

1. Enunciados 2. Solucin

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.2

1. Enunciados Ejercicio 1

Ejercicio 1:
Calcular el mximo intervalo de tiempo que es posible medir con el Timer TA0 del microcontrolador MSP430G2533, indicando el valor de los registros de configuracin del microcontrolador y/o de los perifricos necesarios para obtener dicho intervalo de tiempo, en los siguientes casos:

a) Utilizando en el sistema la frecuencia calibrada de 1 MHz como fuente de reloj del DCO
b) Utilizando en el sistema un cristal de cuarzo externo de 32768 Hz

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.3

1. Enunciados Ejercicio 2

Ejercicio 2:
Utilizando la frecuencia calibrada de 1 MHz como seal de reloj del Timer TA0 del microcontrolador MSP430G2533 se desean generar interrupciones peridicas cada 13 ms, 29 ms y 41 ms: a) Indicar el valor de los registros de configuracin del Timer TA0 para obtener dicha funcionalidad

b) Calcular los primeros 5 valores que es necesario introducir en los registros TA0CCRx para obtener dicha funcionalidad
c) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para obtener dicha funcionalidad

NOTA: No se debe utilizar la divisin de la seal del reloj mediante el divisor del contador: IDx = 00
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.4

1. Enunciados Ejercicio 3

Ejercicio 3:
Utilizando la frecuencia calibrada de 1 MHz como seal de reloj del Timer TA0 del microcontrolador MSP430G2533 se obtienen los siguientes valores en el registro TA0CCR0 utilizando el modo captura:
TAR
0xC34F

t
t3 = 0x927C t1 = 0x30D4 t4 = 0x30D4 t2 = 0x61A8

TA0CCR0 CCIFG TA0 TAIFG

t t

NOTA: No se debe utilizar la divisin de la seal del reloj mediante el divisor del contador: IDx = 00
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.5

1. Enunciados Ejercicio 3

a) Determinar el intervalo de tiempo transcurrido entre cada par de eventos consecutivos b) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para poder calcular los milisegundos transcurridos entre cada par de eventos consecutivos

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.6

1. Enunciados Ejercicio 4

Ejercicio 4:
Utilizando la frecuencia calibrada de 1 MHz como seal de reloj de los Timers del microcontrolador MSP430G2533 se desea obtener un PWM de frecuencia 20 Hz y ciclo de trabajo 25 % para hacer parpadear el LED2 de la placa LaunchPad: a) Indicar el Timer TAx y la unidad de salida OUTx que se deben utilizar b) Indicar los modos de operacin del contador TAR vlidos para implementar el PWM, especificando para cada uno de ellos el valor del registro TAxCCR0 si fuese necesario c) Para cada modo de operacin del contador TAR vlido, indicar los modos de salida de la unidad de salida OUTx vlidos para implementar el PWM, especificando para cada uno de ellos el valor del temporizador TACCRx si fuese necesario

NOTA: No se debe utilizar la divisin de la seal del reloj mediante el divisor del contador: IDx = 00
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.7

1. Enunciados Ejercicio 5

Ejercicio 5:
En el fichero de cabecera io430g2533.h aparecen las siguientes definiciones relacionadas con el Watchdog:
#define WDTPW /* WDT is clocked by fSMCLK #define WDT_MDLY_32 #define WDT_MDLY_8 #define WDT_MDLY_0_5 #define WDT_MDLY_0_064 (0x5A00u) (assumed 1MHz) */ (WDTPW+WDTTMSEL+WDTCNTCL) (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)

/* /* /* /*

32ms interval (default) */ 8ms " */ 0.5ms " */ 0.064ms " */

/* WDT is clocked by fACLK (assumed 32KHz) */ #define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) #define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) #define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) #define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* WDT is clocked by fSMCLK #define WDT_MRST_32 #define WDT_MRST_8 #define WDT_MRST_0_5 #define WDT_MRST_0_064 (assumed 1MHz) */ (WDTPW+WDTCNTCL) (WDTPW+WDTCNTCL+WDTIS0) (WDTPW+WDTCNTCL+WDTIS1) (WDTPW+WDTCNTCL+WDTIS1+WDTIS0)

/* /* /* /*

1000ms 250ms 16ms 1.9ms

" " " "

*/ */ */ */

/* /* /* /*

32ms interval (default) */ 8ms " */ 0.5ms " */ 0.064ms " */

/* WDT is clocked by fACLK (assumed 32KHz) */ #define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) #define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) #define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) #define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)

/* /* /* /*

1000ms 250ms 16ms 1.9ms

" " " "

*/ */ */ */

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.8

1. Enunciados Ejercicio 5

a) Indicar la funcin de cada una de las etiquetas de configuracin del Watchdog segn el nombre de la misma

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.9

ndice

1. Enunciados 2. Solucin

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.10

2. Solucin Ejercicio 1

Ejercicio 1:
a) Utilizando en el sistema la frecuencia calibrada de 1 MHz como fuente de reloj del DCO
b) Utilizando en el sistema un cristal de cuarzo externo de 32768 Hz
DCOCTL = CALDCO_1MHz BCSCTL1 = CALBC1_1MHz BCSCTL2 = DIVS_3 TA0CTL = TASSEL_2 + ID_3 + MC_3 TA0CCR0 = 0xFFFF DCOCLK SMCLK 1 MHz 125 KHz f = 15.625 KHz T = 64 s 0x1FFFE ciclos 8.4 s

TA0 Clock Cuenta Mx.

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.11

2. Solucin Ejercicio 1

a) Utilizando en el sistema la frecuencia calibrada de 1 MHz como fuente de reloj del DCO
b) Utilizando en el sistema un cristal de cuarzo externo de 32768 Hz
BCSCTL1 |= DIVA_3 TA0CTL = TASSEL_1 + ID_3 + MC_3 TA0CCR0 = 0xFFFF ACLK TA0 Clock Cuenta Mx. 4.096 KHz f = 512 Hz T = 1.953 ms 0x1FFFE ciclos 4.3 min

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.12

2. Solucin Ejercicio 2

Ejercicio 2:
a) Indicar el valor de los registros de configuracin del Timer TA0 para obtener dicha funcionalidad
b) Calcular los primeros 5 valores que es necesario introducir en los registros TA0CCRx para obtener dicha funcionalidad c) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para obtener dicha funcionalidad
TA0CTL = TASSEL_2 + MC_2 TA0CCR0 = 0x32C8 TA0CCTL0 = CCIE TA0CCR1 = 0x7148 TA0CCTL1 = CCIE TA0CCR2 = 0xA028 TA0CCTL2 = CCIE

NOTA: No se debe utilizar la divisin de la seal del reloj mediante el divisor del contador: IDx = 00
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.13

2. Solucin Ejercicio 2

a) Indicar el valor de los registros de configuracin del Timer TA0 para obtener dicha funcionalidad
b) Calcular los primeros 5 valores que es necesario introducir en los registros TA0CCRx para obtener dicha funcionalidad c) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para obtener dicha funcionalidad
TA0CCR0 = 0x32C8 0x6590 0x9858 0xCB20 0xFDE8
TA0CCR1 = 0x7148 0xE290 0x53D8 0xC520 0x3668 TA0CCR2 = 0xA028 0x4050 0xE078 0x80A0 0x20C8

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.14

2. Solucin Ejercicio 2

a) Indicar el valor de los registros de configuracin del Timer TA0 para obtener dicha funcionalidad
b) Calcular los primeros 5 valores que es necesario introducir en los registros TA0CCRx para obtener dicha funcionalidad c) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para obtener dicha funcionalidad
#pragma vector = TIMER0_A0_VECTOR __interrupt void RTI_TA0_CCR0(void) { TA0CCR0 += 0x32C8; ... } // void RTI_TA0_CCR0(void) #pragma vector = TIMER0_A1_VECTOR __interrupt void RTI_TA0_CCR12(void) { switch (__even_in_range(TAIV, 10)) { case 2: { TA0CCR1 += 0x7148; break; } // case 2 case 4: { TA0CCR2 += 0xA028; break; } // case 4 } // switch (__even_in_range(TAIV, 10)) ... } // void RTI_TA0_CCR12(void)

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.15

2. Solucin Ejercicio 3

Ejercicio 3:
a) Determinar el intervalo de tiempo transcurrido entre cada par de eventos consecutivos b) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para poder calcular los milisegundos transcurridos entre cada par de eventos consecutivos
T i-1,i = (TA0CCR0 i TA0CCR0 i-1) + <num_TAIFG> * 0xC350

T 1,2 = 0x030D4 ciclos = 12.5 ms T 2,3 = 0x0F424 ciclos = 62.5 ms T 3,4 = 0x124F8 ciclos = 75.0 ms

NOTA: No se debe utilizar la divisin de la seal del reloj mediante el divisor del contador: IDx = 00
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.16

2. Solucin Ejercicio 3

a) Determinar el intervalo de tiempo transcurrido entre cada par de eventos consecutivos b) Desarrollar el cdigo de las rutinas de interrupcin del Timer TA0 para poder calcular los milisegundos transcurridos entre cada par de eventos consecutivos
float num_ms; unsigned int num_50ms = 0; ... #pragma vector = TIMER0_A0_VECTOR __interrupt void RTI_TA0_CCR0(void) { static unsigned int TA0CCR0_ant = 0; num_ms = ((float) (TA0CCR0 TA0CCR0_ant)/1000.0) + num_50ms * 50; TA0CCR0_ant = TA0CCR0; num_50ms = 0; ... } // void RTI_TA0_CCR0(void)

#pragma vector = TIMER0_A1_VECTOR __interrupt void RTI_TA0_TAIFG(void) { switch (__even_in_range(TAIV, 10)) { case 10: { num_50ms++; break; } // case 10 } // switch (__even_in_range(TAIV, 10)) ... } // void RTI_TA0_TAIFG(void)

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.17

2. Solucin Ejercicio 4

Ejercicio 4:
a) Indicar el Timer TAx y la unidad de salida OUTx que se deben utilizar b) Indicar los modos de operacin del contador TAR vlidos para implementar el PWM, especificando para cada uno de ellos el valor del registro TAxCCR0 si fuese necesario c) Para cada modo de operacin del contador TAR vlido, indicar los modos de salida de la unidad de salida OUTx vlidos para implementar el PWM, especificando para cada uno de ellos el valor del temporizador TACCRx si fuese necesario

TA0.1 = TA0 + OUT1

NOTA: No se debe utilizar la divisin de la seal del reloj mediante el divisor del contador: IDx = 00
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.18

2. Solucin Ejercicio 4

a) Indicar el Timer TAx y la unidad de salida OUTx que se deben utilizar b) Indicar los modos de operacin del contador TAR vlidos para implementar el PWM, especificando para cada uno de ellos el valor del registro TAxCCR0 si fuese necesario c) Para cada modo de operacin del contador TAR vlido, indicar los modos de salida de la unidad de salida OUTx vlidos para implementar el PWM, especificando para cada uno de ellos el valor del temporizador TACCRx si fuese necesario
Modo ascendente: VLIDO TA0CCR0 = 0xC34F
Modo continuo: NO VLIDO f 15.3 Hz 20 Hz Modo ascendente/descendente: VLIDO TA0CCR0 = 0x61A8

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.19

2. Solucin Ejercicio 4

a) Indicar el Timer TAx y la unidad de salida OUTx que se deben utilizar b) Indicar los modos de operacin del contador TAR vlidos para implementar el PWM, especificando para cada uno de ellos el valor del registro TAxCCR0 si fuese necesario c) Para cada modo de operacin del contador TAR vlido, indicar los modos de salida de la unidad de salida OUTx vlidos para implementar el PWM, especificando para cada uno de ellos el valor del temporizador TACCRx si fuese necesario
Modo ascendente:
Modo 2 (Toggle/Reset): TA0CCR1 = 0x927C Modo 3 (Set/Reset) : TA0CCR1 = 0x927C

Modo ascendente/descendente:
Modo 2 (Toggle/Reset): TA0CCR1 = 0x186A Modo 3 (Set/Reset)(1) : NO VLIDO

Modo 6 (Toggle/Set)
Modo 7 (Reset/Set)

: TA0CCR1 = 0x30D4
: TA0CCR1 = 0x30D4

Modo 6 (Toggle/Set)

: TA0CCR1 = 0x493E

Modo 7 (Reset/Set)(2) : TA0CCR1 = 0x30D4

(1) Slo para ciclos de trabajo 50 % (2) Slo para ciclos de trabajo 50 %
Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013 ET6.20

2. Solucin Ejercicio 5

Ejercicio 5:
a) Indicar la funcin de cada una de las etiquetas de configuracin del Watchdog segn el nombre de la misma
WDT_<C><MOD>_<TIME>

<C> Seal de reloj: M = SMCLK (1 MHz) A = ACLK (32 KHz)

<MOD> Modo: DLY = Temporizador RST = Watchdog

<TIME> Tiempo: (1 MHz) 32 = 32 ms 8 = 8 ms 0_5 = 0.5 ms 0_064 = 0.064 ms (32 KHz) 1000 = 1000 ms 250 = 250 ms 16 = 16 ms 1_9 = 1.9 ms

Microcontroladores - Grado en Ingeniera deTecnologas de Telecomunicacin - Curso 2012/2013

ET6.21