OpenChargeMicro/Software/src/main.cpp

114 lines
2.5 KiB
C++

#include "openChargeMicro.h"
int main(void) {
serialSetup();
serialSend("Hello World\r\n");
ioController io;
io.deactivateChargers();
_delay_ms(1000); //Startup delay
io.setActiveLED(true);
io.activateChargers();
/* create charger */
s_charger charger_settings;
charger_settings.chU = 0;
charger_settings.chI = 4;
charger_settings.nr = 0;
charger charger01 = charger(charger_settings);
charger01.getInfo();
charger_settings.chU = 1;
charger_settings.chI = 5;
charger_settings.nr = 1;
charger charger02 = charger(charger_settings);
charger02.getInfo();
charger_settings.chU = 2;
charger_settings.chI = 6;
charger_settings.nr = 2;
charger charger03 = charger(charger_settings);
charger03.getInfo();
charger_settings.chU = 3;
charger_settings.chI = 7;
charger_settings.nr = 3;
charger charger04 = charger(charger_settings);
charger04.getInfo();
/* create charger */
while (true) {
char charVal[10];
dtostrf(charger01.getVoltage(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger01.getCurrent(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger02.getVoltage(), 4, 2, charVal);
serialSend("Charger02 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger02.getCurrent(), 4, 2, charVal);
serialSend("Charger02 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger03.getVoltage(), 4, 2, charVal);
serialSend("Charger03 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger03.getCurrent(), 4, 2, charVal);
serialSend("Charger03 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger04.getVoltage(), 4, 2, charVal);
serialSend("Charger04 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger04.getCurrent(), 4, 2, charVal);
serialSend("Charger04 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
serialSend("\r\n");
_delay_ms(1000);
}
return 0;
}
void serialSetup(void) {
//Register settings
//High and low bits
UBRR0H = (BUAD_RATE_CALC >> 8);
UBRR0L = BUAD_RATE_CALC;
//transimit and recieve enable
UCSR0B = (1 << TXEN0) | (1 << TXCIE0) | (1 << RXEN0) | (1 << RXCIE0);
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); //8 bit data format
}
void serialSend(const char* sendString) {
for (unsigned int i = 0; i < strlen(sendString); i++) {
while (( UCSR0A & (1 << UDRE0)) == 0) {
};
UDR0 = sendString[i];
}
}