Estoy utilizando la placa de descubrimiento stm32f3 para intentar generar la señal para una tira de luz ws2812.
Tengo src/system_stm32f30x.c
, que copié de los ejemplos de StdPeriph. Actualmente estoy usando el HSI interno, y la velocidad del reloj es de 48MHz.
Estoy usando gcc-arm-none-eabi-4_8-2014q3 para compilar.
Si dejo src/system_stm32f30x.c
como está, recibo advertencias del compilador sobre variables no utilizadas, HSEStatus y StartUpCounter, pero mi programa funciona correctamente. Si cambio el nombre de las variables a test1 y test2, todavía funciona como se esperaba, por lo que parece que no importa cómo se llamen las variables, solo importa que estén ocupando memoria (supongo).
Sin embargo, si comento estas variables para deshacerme de la advertencia, mi programa ya no funciona correctamente. El primer pulso de la señal PWM es demasiado corto o demasiado largo. Hace que el primer LED de mi tira parpadee de forma errática (aunque el resto de los LED están bien).
Mi código está aquí: enlace
¿Qué podría ser?