Paso 6: El firmware
Escribiendo el firmware era bastante simple, como escogí un algoritmo de carga extremadamente simple. La idea era cargar la batería durante diez minutos, luego tomar una medida a través de la batería. Si el voltaje de la batería está por encima de un determinado umbral, parar la carga, si no, continuar.
Para configurar sincronizaciones, he implementado una interrupción de 10 ms y establecido un software en cada momento 100 th que esta interrupción se produce. Eso me dio una base de tiempo de un segundo. Contando los segundos fue la próxima cosa que implementé - escribí las definiciones de macro para poder cambiar fácilmente los tiempos de espera de carga y medición. Los tiempos de encendido y apagado finales fueron:
- Medición: 5 segundos
- Carga: 600 segundos
El código sí mismo es muy simple, y explica por sí mismo, lo enviará a quien lo solicite. Básicamente es una mezcla de los descritos en los pasos anteriores, algunas macros, configuraciones de oscilador y el algoritmo simple que describí antes. Deberá existir cualquier duda sobre ello, no dude en preguntar!
Herramientas de software utilizadas fueron compilador MPLAB X y XC8.