He creado un proyecto de C ++ para un LPC1227 utilizando LPCExpresso 6.1.0. El proyecto, hasta ahora, construye y funciona bien. No he realizado ningún cambio en cr_startup_lpc12xx.cpp
.
Me gustaría agregar un SysTick_Handler()
. En mi main.cpp
he añadido un método:
void SysTick_Handler(void)
{
timerCounter++; // these variables are all declared globally in main.cpp
timer_10ms_tick = true;
if ((timerCounter % 10) == 0) //every 100ms
{
timer_100ms_tick = true;
}
if ((timerCounter % 100) == 0) //every 1000ms
{
timer_1000ms_tick = true;
}
}
También agregué la siguiente línea en mi método main()
:
SysTick_Config(12000000/100);
Cuando ejecuto mi código a través de la depuración, la interrupción se dispara, pero se atasca en el SysTick_Handler()
predeterminado que está dentro de cr_startup_lpc12xx.cpp
(que es solo un bucle infinito). Si elimino el SysTick_Handler
predeterminado de cr_startup_lpc12xx.cpp
, fallas graves de mi programa.
He visto el ejemplo de Blinky (que es C, no C ++) y agrega un nuevo controlador a main.cpp
sin eliminar el controlador del archivo de inicio.
¿Alguien puede sugerir por qué no se llama a mi controlador principal? ¿Es esta una diferencia de C ++?