OBJETIVO:
Haremos uso de la unidad Timer canal 0 de 16 bits con la que cuenta el MCU R5F104PJAFB de la tarjeta de evaluación YRDKRL78G14. Por medio del led 3 verificamos la interrupción programada por overflow cada segundo.
- Configurar el módulo TAUx
- Crear interrupción cada segundo apagando y prendiendo el led 3
- Del manual Renesas RL78G14 RDK User's Manual ubicamos el LED 3
PASOS:
- Creación de un proyecto:
2.- New/ C Project
- Configurar proyecto:
2.- Seleccionar C/C++ Build / Settings / Linker / Device y establecer los siguientes parámetros:
OCD = 85
Option Byte = efffe8
Palomear: Use range of debug monitor area. Nota: No establecer ningún valor solo dejarlo en blanco.
Apply y después OK.
3.- Configuraremos el módulo TAU0 para que interrupta cada segundo en el archivo r_cg_timer.c
void R_TAU0_Create(void)
{
TAU0EN = 1U; /* supplies input clock */
TPS0 = _0009_TAU_CKM0_FCLK_9 | _0000_TAU_CKM1_FCLK_0 |
_0000_TAU_CKM2_FCLK_1 | _0000_TAU_CKM3_FCLK_8;
/* Stop all channels */
TT0 = _0001_TAU_CH0_STOP_TRG_ON | _0002_TAU_CH1_STOP_TRG_ON | _0004_TAU_CH2_STOP_TRG_ON
|
_0008_TAU_CH3_STOP_TRG_ON | _0200_TAU_CH1_H8_STOP_TRG_ON |
_0800_TAU_CH3_H8_STOP_TRG_ON;
/* Mask channel 0 interrupt */
TMMK00 = 1U; /* disable INTTM00 interrupt */
TMIF00 = 0U; /* clear INTTM00 interrupt flag */
/* Mask channel 1 interrupt */
TMMK01 = 1U; /* disable INTTM01 interrupt */
TMIF01 = 0U; /* clear INTTM01 interrupt flag */
/* Mask channel 1 higher 8 bits
interrupt */
TMMK01H = 1U; /* disable INTTM01H interrupt */
TMIF01H = 0U; /* clear INTTM01H interrupt flag */
/* Mask channel 2 interrupt */
TMMK02 = 1U; /* disable INTTM02 interrupt */
TMIF02 = 0U; /* clear INTTM02 interrupt flag */
/* Mask channel 3 interrupt */
TMMK03 = 1U; /* disable INTTM03 interrupt */
TMIF03 = 0U; /* clear INTTM03 interrupt flag */
/* Mask channel 3 higher 8 bits
interrupt */
TMMK03H = 1U; /* disable INTTM03H interrupt */
TMIF03H = 0U; /* clear INTTM03H interrupt flag */
/* Set INTTM00 low priority */
TMPR100 = 1U;
TMPR000 = 1U;
/* Channel 0 used as interval timer */
TMR00 = _0000_TAU_CLOCK_SELECT_CKM0 | _0000_TAU_CLOCK_MODE_CKS |
_0000_TAU_COMBINATION_SLAVE |
_0000_TAU_TRIGGER_SOFTWARE | _0000_TAU_MODE_INTERVAL_TIMER |
_0000_TAU_START_INT_UNUSED;
TDR00 = _F423_TAU_TDR00_VALUE;
TO0 &= ~_0001_TAU_CH0_OUTPUT_VALUE_1;
TOE0 &= ~_0001_TAU_CH0_OUTPUT_ENABLE;
}- Agregar código, compilar y debug:
--> Practica #7
VÍDEO:
No hay comentarios.:
Publicar un comentario