Quote by Lschreyer
Hardware geht leider nicht, das muss per Software gehen. Ich habe da drei Pins die per Software für verschiedene Zwecke eingestellt werden können, Ausgang, Eingang und einer davon soll die LED, die auf dem Board ist, "nach außen" führen. Wer das Gerät dann einbaut kann so die LED außen an ein Gehäuse anbauen um den Zustand der Elektronik zu sehen. Dazu muss ich eben auf Wunsch das Blinken dieser LED auf diesen Pin schalten können.
Das Blinken muss an der LED und an dem Pin identisch sein. Sollte es zumindest.
Das Gerätchen ist eine Bergungssteuerung / Datenlogger für Modellflugzeuge, es wird in das Modell eingebaut, alles was man dann beim Einschalten hat sind die Piepstöne und die LED um zu sehen/hören in welchem Zustand das Gerät sich befindet. Manche wollen dann die LED nach außen führen um das sehen zu können. Die Blinksignale zeigen einem an ob das System startbereit ist und in welchem Zustand sich das Bergungssystem befindet.
Dazu wollte ich eben eine Möglichkeit schaffen. Da im Modellbereich Platz das wichtigste ist, ist das ganze winzig klein, 60x25 mm ist das ganze nur groß, hat aber sehr viele Funktionen, jede Menge Sensoren, 8MB Flash, 2 Servokanäle, 3 Zündkanäle, Piepser, Uart, I2C, LCD und SPI-Schnittstellen usw. usw.
Evtl. kann ich einfach einen Sysledblink1 auf diesen Pin konfigurieren, den dann bei Bedarf an den selben Stellen wie Sysledblink0 aktivieren, das könnte klappen. Soweit ich das gesehen habe kümmert sich der Treiber nicht um die Einstellung des Ports, dann sollte das so gehen.
Werde berichten...
Hallo Lschreyer,
also ich lege nur im Bootloader direkt die SysLedBlink auf einen Hardware-Pin. Ansonsten lege ich diese einfach im RAM und nutze die nach bedarf für verschiedene Funktionen (Steht auch im Handbuch)
Code
//im Define
// SysLed
SysLEDblink = mSec500; {10..1000 msec}
SysLedPort = @LEDram, $00; // byte-var, polarity
im Code dann so
Code
OutByte.4 := OUT.QLED_CPUOK; //OUT.QLED_CPUOK;
OutByte.5 := (IO.IN_RUN and not OUT.QK17) OR (IO.IN_RUN and OUT.QK17 and LEDram.0 ) ;
OutByte.6 := LEDram.2; //ERROR Meldung
OutByte.7 := LEDram.3; //COM Meldung
Benutze ich schon seit einigen Jahren, so kann ich das blinken / Takte für mehrere Funktionen nutzen. War das sowas was Du meintest? Oder habe ich das falsch verstanden?
Gruß
Thorsten