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 ++?