added profiling into main loop

This commit is contained in:
Seth Samuel 2024-11-05 10:39:16 +13:00
parent b6ffac1372
commit 48cdfdf2f8

View file

@ -12,6 +12,7 @@
#define GPS_UPDATE_FREQUENCY 10 //GPS update frequency per sec #define GPS_UPDATE_FREQUENCY 10 //GPS update frequency per sec
#define DEBOUNCE_DELAY 250 //time in ms #define DEBOUNCE_DELAY 250 //time in ms
#define MIDDLE_SCREEN_BRIGHTNESS 5 #define MIDDLE_SCREEN_BRIGHTNESS 5
//#define PROFILE true
//GPS //GPS
SFE_UBLOX_GPS myGPS; SFE_UBLOX_GPS myGPS;
@ -34,6 +35,10 @@ volatile int screenBrightnessCurrent = ScreenBrightnessUser;
volatile unsigned long lastButtonPush = 0UL; volatile unsigned long lastButtonPush = 0UL;
volatile bool manualBrightness = false; volatile bool manualBrightness = false;
//profiler
int runCounter = 0;
unsigned long profileTimer = millis();
void chageBrightness() { void chageBrightness() {
if (millis() - lastButtonPush > DEBOUNCE_DELAY) { if (millis() - lastButtonPush > DEBOUNCE_DELAY) {
@ -45,14 +50,14 @@ void chageBrightness() {
void connectGPS() { //need to do this everytime the GPS turns back on void connectGPS() { //need to do this everytime the GPS turns back on
do { //set gps to 115200 baudrate code comes from sparkfun examples do { //set gps to 115200 baudrate code comes from sparkfun examples
Serial.println("GNSS: trying 115200 baud"); // Serial.println("GNSS: trying 115200 baud");
Serial1.begin(115200); Serial1.begin(115200);
if (myGPS.begin(Serial1) == true) break; if (myGPS.begin(Serial1) == true) break;
delay(100); delay(100);
Serial.println("GNSS: trying 9600 baud"); //Serial.println("GNSS: trying 9600 baud");
Serial1.begin(9600); Serial1.begin(9600);
if (myGPS.begin(Serial1) == true) { if (myGPS.begin(Serial1) == true) {
Serial.println("GNSS: connected at 9600 baud, switching to 115200"); //Serial.println("GNSS: connected at 9600 baud, switching to 115200");
myGPS.setSerialRate(115200); myGPS.setSerialRate(115200);
delay(100); delay(100);
} else { } else {
@ -115,12 +120,11 @@ void setup1() {
Serial1.setRX(1); Serial1.setRX(1);
Serial1.setTX(0); Serial1.setTX(0);
connectGPS(); connectGPS();
setStartBrightness(); //setStartBrightness();
} }
void loop() { void loop() {
//set init brightness //set init brightness
if ((!setInitBrightness && gpsFixType.load() > 0) || ((!manualBrightness && millis() > brightnessTimer + 6000) && gpsFixType.load() > 0)) { //fire every minute if ((!setInitBrightness && gpsFixType.load() > 0) || ((!manualBrightness && millis() > brightnessTimer + 6000) && gpsFixType.load() > 0)) { //fire every minute
setStartBrightness(); setStartBrightness();
setInitBrightness = true; setInitBrightness = true;
@ -185,6 +189,18 @@ if((!setInitBrightness&&gpsFixType.load()>0)||((!manualBrightness&&millis() > br
} }
disp.writeDisplay(); disp.writeDisplay();
rp2040.wdt_reset(); //rest watchdog timer rp2040.wdt_reset(); //rest watchdog timer
#if PROFILE
//profiling
runCounter++;
if(millis() > profileTimer + 1000){
Serial.println(runCounter);
runCounter=0;
profileTimer=millis();
}
#endif
} }