OpenChargeMicro/Software/src/main.cpp

155 lines
3.1 KiB
C++
Raw Normal View History

2018-11-21 23:17:31 +01:00
#include "openChargeMicro.h"
2018-11-22 20:43:21 +01:00
charger* chargers;
void createChargers();
void printStatus();
2018-11-22 11:50:11 +01:00
2018-11-21 23:17:31 +01:00
int main(void) {
serialSetup();
serialSend("Hello World\r\n");
2018-11-22 11:50:11 +01:00
clock clk;
2018-11-21 23:17:31 +01:00
ioController io;
io.deactivateChargers();
io.setActiveLED(true);
io.activateChargers();
2018-11-22 20:43:21 +01:00
//chargers[0]->getInfo();
2018-11-22 14:17:39 +01:00
2018-11-22 20:43:21 +01:00
chargers=(charger *) malloc(4*sizeof(charger));
2018-11-22 14:17:39 +01:00
2018-11-22 20:43:21 +01:00
createChargers();
/*
chargers[0].getInfo();
chargers[1].getInfo();
chargers[2].getInfo();
chargers[3].getInfo();
*/
printStatus();
2018-11-21 23:45:26 +01:00
2018-11-22 11:50:11 +01:00
return 0;
}
2018-11-21 23:45:26 +01:00
2018-11-22 20:43:21 +01:00
void createChargers() {
/* create chargers */
2018-11-21 23:17:31 +01:00
s_charger charger_settings;
2018-11-22 20:43:21 +01:00
charger_settings.chU = CH0_U;
charger_settings.chI = CH0_I;
charger_settings.nr = CH0_NR;
charger chrg0 = charger(charger_settings);
chrg0.setStatus(true);
chargers[0] = chrg0;
charger_settings.chU = CH1_U;
charger_settings.chI = CH1_I;
charger_settings.nr = CH1_NR;
charger chrg1 = charger(charger_settings);
chrg1.setStatus(true);
chargers[1] = chrg1;
charger_settings.chU = CH2_U;
charger_settings.chI = CH2_I;
charger_settings.nr = CH2_NR;
charger chrg2 = charger(charger_settings);
chrg2.setStatus(true);
chargers[2] = chrg2;
charger_settings.chU = CH3_U;
charger_settings.chI = CH3_I;
charger_settings.nr = CH3_NR;
charger chrg3 = charger(charger_settings);
chrg3.setStatus(true);
chargers[3] = chrg3;
//chargers[2]->getInfo();
//chargers[3]->getInfo();
2018-11-21 23:17:31 +01:00
/* create charger */
2018-11-22 20:43:21 +01:00
/*
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);
}
*/
}
2018-11-21 23:17:31 +01:00
2018-11-22 20:43:21 +01:00
void printStatus() {
serialSend("printing status .. \r\n");
for (int i = 0; i < CHARGER_SIZE; i++) {
if (true) {
chargers[i].getInfo(); //print values
}
2018-11-21 23:17:31 +01:00
}
2018-11-22 20:43:21 +01:00
2018-11-21 23:17:31 +01:00
}
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];
}
}