Projektiteration 2

nachdem die einzelnen Hard- und Software-Komponenten funktionieren, werden diese zum Gesamtsystem zusammengefügt und eine erste einfache Lösung erstellt (Initial Operating Capability)

Controller::onStart()
// boot sequence after start SysTick
statusLED.blink(1);
display.clear();
display.home();
display.write("WELCOME");
 
// Uhr stellen
clock.hour=11;
clock.minute=20;
clock.second=0;
 
// weckzeit stellen
sensorBus.eep.writeData(10,clock.hour); waitMs(10);
sensorBus.eep.writeData(11,clock.minute+1); waitMs(10);
sensorBus.eep.writeData(12,clock.second); waitMs(10);
 
speaker.setHz(900);
Controller::onEvent1s()
uint8_t temerature;
temerature=sensorBus.temperatureSensor.getTemp();
String txt;
txt.format("Temp=%d            ",temerature);
display.setPos(1,1);
display.write(txt);
txt=clock.getTimeAsText();
display.setPos(1,2);
display.write(txt);
 
uint8_t wm,wh,ws;
wh=sensorBus.eep.readData(10);
wm=sensorBus.eep.readData(11);
ws=sensorBus.eep.readData(12);
 
if (wh==clock.hour)
{
	if (wm==clock.minute)
	{
		if(ws==clock.second)
		{
			//alarm
			alarm=true;
			speaker.on();
			statusLED.flicker();
		}
	}
}
TemperatureSensor::onStart()
connect(app.sensorBus,0x90);
EEPROM::onStart()
connect(app.sensorBus,addr);
UserButton::onClick()
// hier alarm ausschalten
app.speaker.off();
app.statusLED.blink(1);
Clock::onEvent1s()
second++;
if (second>60)
{
	minute++;
	second=0;
	if (minute>60)
	{
		hour++;
		minute=0;
		if (hour>24)
		{
			hour=0;
		}
	}
}
Clock::getTimeAsText()
String txt;
txt.format("%d:%d:%d",hour,minute,second);