OBJETIVO:
Se configurará el Timer 0 y el Timer 1 en cascada para generar uno de 16 bits con la que cuenta el MCU R5F563NB de la tarjeta de evaluación YRDKRX63N. Este nuevo Timer de 16 bits lo utilizaremos para generar funciones de retardo de tiempo como delay_100us y delay_ms por medio de su interrupción.- Configurar el Timer 0 y Timer 1 ambos de 8 bits a uno de 16 bits
- Crear interrupción overflow de timer TMR0 CMIA0
- Parpadear un Led cada segundo utilizando las funciones delay_ms
- Del manual Renesas RX63N RDK User's Manual ubicamos el LED 4
PASOS:
- Creación de un proyecto:
2.- New/ C Project / Renesas RXC ToolChain
3.- Seleccionar el target R5F563NB, debug hardware Segger jLink, después next
4.- Seleccionar C/C++ Source file y por ultimo Finish.
5.- Configuraremos Timer 0 y 1 en cascada de 16 bits e iniciamos interrupción CMIA0 en el archivo delay.c:
void InitTimer_0_1(void)
{
/* Enable the timers. */
//SYSTEM.MSTPCRA.BIT.MSTPA5 = 0;
MSTP(TMR0)
= 0; //Activate TMR0
unit
MSTP(TMR1)
= 0; //Activate TMR1
unit
TMR1.TCCR.BIT.CSS = 1;
TMR1.TCCR.BIT.CKS = 1;
//x = (1/48 Mhz)*(2)*(65535)
= 2730.6 us Count source is PCLK/2 for
TMR1
TMR0.TCCR.BIT.CSS = 3;
// 16-bit mode
TMR0.TCCR.BIT.CKS = 0;
TMR0.TCR.BIT.CCLR = 1;
//Count source is
TMR1 for TMR0
TMR0.TCR.BIT.CMIEA = 1; // Enable Interrupt on Compare Match A
inside the peripheral module
IR(TMR0,CMIA0)=
0; // Clear IRQ if it was on for some
reason
IPR(TMR0,CMIA0)=
2; // IRQ priority for TMR0.CMIA0 = 2
IEN(TMR0,CMIA0)=
1; // Enable
TMR0.CMIA0 IRQ in the Interrupt Control Unit
//65535
--- 2730.6 us
//
T --- 100 us
//T = 2400
TMR01.TCORA = 2400;
//TMR0.TCORA = 9; // high 8 bits
//TMR1.TCORA = 96; // low 8 bits
}
// TMR0
CMIA0
void Excep_TMR0_CMIA0(void)
{
G_100usTimer++;
if((G_100usTimer % 10) == 0)
G_msTimer++;
}
- Agregar código, compilar y debug:
--> Practica #2
2.- Compilar con el icono del martillo y debug con el icono del insecto:
what's the password key for the .rar file given in the link above
ResponderBorrar