From 07654829ed2e025755df9fe1552cb239f76a65bb Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 9 Sep 2023 19:45:45 +0100 Subject: [PATCH] Main structure and setup pinMode most of what could be useful in the main and put modules LOW to minimize power draw before the regulator is ON. Add the skeleton for the setup, main loop and battery level checking. --- src/main.cpp | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 581ef7d..5c71739 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,6 +4,46 @@ #include -__attribute__((noreturn)) int main() { +#include "Pinout.h" +__attribute__((noreturn)) int main() { + pinMode(pin_DBG_LED_1, OUTPUT); + pinMode(pin_DBG_LED_2, OUTPUT); + + pinMode(pin_Reg_en, OUTPUT); + pinMode(pin_Audio_Amp_enable, OUTPUT); + pinMode(pin_Audio_AMP_GAIN_EN, OUTPUT); + + pinMode(pin_NFC1_RST, OUTPUT); + pinMode(pin_LCD_RST, OUTPUT); + + /* Preemptively disable what we can before the regulator is ON. */ + digitalWrite(pin_Audio_Amp_enable, LOW); + digitalWrite(pin_NFC1_RST, LOW); + digitalWrite(pin_LCD_RST, LOW); + + pinMode(pin_BAT_SNS, INPUT); + /* + * Voltage divider ratio is 1.5 and analog input has 10 significant bits. + * Which gives us 0-1023 <=> 0V-4.95V, so 650 is a measure of 3.14V. + * This is quite low, but there's a voltage drop because of the diode, and + * we don't want to be at the very end of the battery's charge anyway. + * Let's be conservative. + */ + if (analogRead(pin_BAT_SNS) < 650) { /* TODO: Low battery handling */ } + + digitalWrite(pin_Reg_en, HIGH); + /* + * System is powered up after this point. + */ + + Serial.begin(115200); + Serial.println("# System is powered up, running set-up."); + + /* TODO: Setups once module structure is up. */ + + /* Main loop */ + while (true) { + + } }