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.
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();
Nachdem alle Komponenten erfolgreich getestet wurden können Sie den nächsten Schritt im Projekt gehen.