Johannes M. schrieb:
> if (status.led==0){PORTA |= (1<<PA7);}else{PORTA &= ~(1<<PA7);}
Wenn schon so, dann gleich so:
1 | (status.led==0) ? PORTA|=(1<<PA7) : PORTA&=~(1<<PA7);
|
Ich würde es aber so schreiben:
1 | if (status.led==0) PORTA |= (1<<PA7);
|
2 | else PORTA &= ~(1<<PA7);
|
Johannes M. schrieb:
> Das Stichwort heißt Flankenerkennung.
> Ich frage die Position des Joysticks ab und setzte so lange dieser
> beätigt ist immer und immer wieder die Ausgänge.
Und was ist daran eine Flankenerkennung? Denn eine FLanke hat eben genau
keine Dauer.
Es ist übrigens eine gute Art, einen Port 1x am Schleifenanfang
einzulesen und dann im Programmdurchlauf mit diesem "Prozessabbild" zu
arbeiten. Denn dann ist während des gesamten Schleifendurchlaufs der
EIngang stabil und es ist eben nicht in der ersten Schleifenhälte ein
Portpin low und in der zweiten Hälfte high.
Mit PAE (Prozessabbild Eingänge), Zyklusdurchlauf (mainloop), Merkern
und Schrittketten (Finite Zustandsautomaten) und PAA (Prozessabbild
Ausgänge) schafft es jeder Schlosser, mit einer SPS eine Anlage zu
steuern.