Inhaltsverzeichnis

1. Iteration, Arbeitsbereitschaft herstellen

In der ersten Projektiteration soll die Zielplattplattform, also die Hardware, hergestellt werden. Diese benötigen wir letztendlich zum Ausführen und Testen unseres Codes. Es ist zunächst unerheblich, ob wir die etwas unelegante Variante mit den aneinandergesteckten Add-Ons oder schon die sexy Bastellösung verwenden. Für Anfänger empfiehlt sich zuerst die einfache Verwendung der aneinander gesteckten Add-Ons. Das schließt Probleme in der Schaltung als Fehlerquellen aus. In jedem Fall muss sich der Entwickler einer hardwarenahen Anwendung mit der konkreten Schaltung oder noch besser, mit dem Schaltplan auseinandersetzen. Die Arbeitsweise mit einer der Zielplattform äquivalenten „Schreibtischhardware“ nennt man HIL-Test-Umgebung. HIL steht für hardware in the loop und bedeutet, dass im Entwicklungsprozess (die loop) bereits die richtige Hardware (der richtige Controller) verwendet wird.

Komponenten testen

Bevor wir die gesamte Logik des Systems bauen, checken wir erst einmal jede Komponente einzeln. Das sind im ersten Anlauf:

Stellen Sie zuerst die Hardware zusammen. Legen Sie dann ein neues Projekt „HardwareTest“ an. Wählen Sie das entsprechende Modell in SiSy für die Programmierung ihres Controllers und legen Sie ein Klassenmodell oder jeweils separate Klassenmodelle zum Testen der oben genanten Komponenten an. Im folgenden eine mögliche Beispiellösung für einen solchen Test.

Controller::onStart()
// boot sequence after start SysTick
// LCD testen
display.clear();
display.home();
display.write("WELCOME");
// EEP test schreiben
sensorBus.eep.writeData(0,'T'); waitMs(10);
sensorBus.eep.writeData(1,'E'); waitMs(10);
sensorBus.eep.writeData(2,'S'); waitMs(10);
sensorBus.eep.writeData(3,'T'); waitMs(10);
waitMs(2000);
speaker.setHz(1800);
Controller::onEvent1s()
// temperature sensore test
uint8_t temerature;
temerature=sensorBus.temperatureSensor.getTemp();
String txt;
txt.format("Temp=%d ",temerature);
display.setPos(1,1);
display.write(txt);
 
// eep lesen test
char buffer[5]={0};
buffer[0]=sensorBus.eep.readData(0);
buffer[1]=sensorBus.eep.readData(1);
buffer[2]=sensorBus.eep.readData(2);
buffer[3]=sensorBus.eep.readData(3);
display.setPos(1,2);
display.write(buffer);
TemperatureSensor::onStart()
connect(app.sensorBus,0x90);
EEPROM::onStart()
connect(app.sensorBus,addr);
UserButton::onHoldStart()
// Speaker test
app.speaker.on();
UserButton::onClick()
//Button LED Test
app.statusLED.toggle();
app.speaker.off();

Weiter mit

Nachdem alle Komponenten erfolgreich getestet wurden können Sie den nächsten Schritt im Projekt gehen.