Datenausgabe über Display eingebaut
This commit is contained in:
parent
2613c16a3d
commit
a71e2263dc
@ -23,6 +23,7 @@
|
|||||||
#include "CLI.h"
|
#include "CLI.h"
|
||||||
#include "I2C.hpp"
|
#include "I2C.hpp"
|
||||||
#include "Display.hpp"
|
#include "Display.hpp"
|
||||||
|
#include "Timer.hpp"
|
||||||
|
|
||||||
using namespace ElektronischeLast;
|
using namespace ElektronischeLast;
|
||||||
|
|
||||||
@ -49,6 +50,7 @@ static CLI_Command_t commands[] =
|
|||||||
{ "reboot", "System neu starten", reboot },
|
{ "reboot", "System neu starten", reboot },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static Timer timer = Timer();
|
||||||
static LED led = LED(500U);
|
static LED led = LED(500U);
|
||||||
static Display lcd = Display();
|
static Display lcd = Display();
|
||||||
static FanControl fan = FanControl();
|
static FanControl fan = FanControl();
|
||||||
@ -84,6 +86,7 @@ int main (void)
|
|||||||
lcd.init();
|
lcd.init();
|
||||||
fan.init();
|
fan.init();
|
||||||
eeprom.init();
|
eeprom.init();
|
||||||
|
timer.start(500U);
|
||||||
|
|
||||||
float voltage_gain = NAN;
|
float voltage_gain = NAN;
|
||||||
float current_gain = NAN;
|
float current_gain = NAN;
|
||||||
@ -110,7 +113,27 @@ int main (void)
|
|||||||
|
|
||||||
PIDController_Init(&pid);
|
PIDController_Init(&pid);
|
||||||
|
|
||||||
lcd.print("Miep Miep");
|
while(lcd.ready_for_data() == false)
|
||||||
|
{
|
||||||
|
lcd.run();
|
||||||
|
}
|
||||||
|
uint8_t degreeSymbol[] = {
|
||||||
|
0x0E,
|
||||||
|
0x0A,
|
||||||
|
0x0E,
|
||||||
|
0x00,
|
||||||
|
0x00,
|
||||||
|
0x00,
|
||||||
|
0x00,
|
||||||
|
0x00
|
||||||
|
};
|
||||||
|
lcd.lcd_set_user_chars(Display::SecondSign, degreeSymbol);
|
||||||
|
while(lcd.ready_for_data() == false)
|
||||||
|
{
|
||||||
|
lcd.run();
|
||||||
|
}
|
||||||
|
lcd.lcd_set_display(Display::eDispalyOn, Display::eCursorOff, Display::eCursorBlinkOff);
|
||||||
|
lcd.print("Elektronische Last");
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
@ -118,6 +141,7 @@ int main (void)
|
|||||||
|
|
||||||
if(last_tick != systick)
|
if(last_tick != systick)
|
||||||
{
|
{
|
||||||
|
timer.tick();
|
||||||
last_tick = systick;
|
last_tick = systick;
|
||||||
switch(modus)
|
switch(modus)
|
||||||
{
|
{
|
||||||
@ -147,7 +171,33 @@ int main (void)
|
|||||||
temperatur = adc.get_temperature();
|
temperatur = adc.get_temperature();
|
||||||
geschwindigkeit = fan.get_speed();
|
geschwindigkeit = fan.get_speed();
|
||||||
|
|
||||||
lcd.run();
|
if(timer.elapsed())
|
||||||
|
{
|
||||||
|
if(lcd.ready_for_data())
|
||||||
|
{
|
||||||
|
timer.start(500U);
|
||||||
|
|
||||||
|
char data[17U];
|
||||||
|
|
||||||
|
lcd.set_cursor(Display::Line1, 0U);
|
||||||
|
int32_t len = snprintf(data, sizeof(data) - 1, "U:%" PRIu32 ".%02" PRIu32 "V",
|
||||||
|
spannung / 1000U, spannung % 1000U / 10U);
|
||||||
|
std::memset(&data[len], (int)' ', 16U - len);
|
||||||
|
snprintf(&data[10], sizeof(data) - 10, "T:%" PRIu32 "%cC", temperatur, 0x1);
|
||||||
|
data[16] = '\0';
|
||||||
|
lcd.print(data);
|
||||||
|
#if 0
|
||||||
|
lcd.set_cursor(Display::Line2, 0U);
|
||||||
|
len = snprintf(data, sizeof(data) - 1, "I:%" PRIu32 ".%02" PRIu32 "A",
|
||||||
|
strom / 1000U, strom % 1000U / 10U);
|
||||||
|
std::memset(&data[len], (int)' ', 16U - len);
|
||||||
|
snprintf(&data[10], sizeof(data) - 10, "S:%" PRIu32 "W", geschwindigkeit);
|
||||||
|
data[16] = '\0';
|
||||||
|
lcd.print(data);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
lcd.run();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
serial_cyclic();
|
serial_cyclic();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user