Arduino For Schleife wird unterbrochen

lafi08

Ensign
Registriert
Sep. 2017
Beiträge
165
Hi. Ich habe gerade ein Problem mit meinem Arduino. Und zwar wird, sobald 1 Pin nicht mehr mit Ground verbunden ist,
eine Methode aufgerufen, welche dann in einer For Schleife 3 mal das selbe ausführt. Das Problem dabei ist nun, dass wenn ich während die For Schleife dies nun ausführt, die Verbindung zwischen dem Pin und Ground wiederherstelle, die For Schleife pausiert und wenn ich dann die Verbindung wieder auflöse, die For Schleife genau an dem Punkt weitermacht an dem sie "pausiert" hat. Ich habe bereits versucht ein bool zu erstellen, welches vor der For Schleife auf true gesetzt wird. Im Loop wird dann per if Abfrage der Code nur aufgeführt, wenn der bool false ist. Leider besteht selbst dann immer noch das gleiche Problem.
 
Klingt nach Interrupt.

CODE?
 
das klingt nach einer interrupt routine...aber ja, der code würde helfen, oder noch besser ein minimalbeispiel
 
Leider kann ich nicht den ganzen Code posten. Diese dunktioniert auch soweit perfekt und sobald der Pin keinen Kontakt mehr zu Ground hat, wird PushBtnPressToRemote(i + 1);. aufgerufen.
In PushBtnPressToRemote werden einfach nur ein paar UDP Pakete verschickt.
 
Zuletzt bearbeitet:
So kann man dir nicht helfen.
Wenn der gezeigte Code unterbrochen und später fortgesetzt wird, liegt es NICHT am gezeigten Code.
Was steht in setup() ?
 
  • Gefällt mir
Reaktionen: teufelernie
Im Setup werden dem Arduino nur ein mal seine Adressen zugewiesen und die Pins bekommen den Status 1.
 
Zuletzt bearbeitet:
Dann wird Ethernet.begin oder UDP.begin irgendwelche Interrupt-routinen haben, die deinen loop pausieren.
(Interrupt).

Wenn da Ethernet läuft, muss auf eingehende Datenpakete reagiert werden.
Wenn also dein Loop läuft, und im Hintergrund irgendwelche Daten/Events passieren, wird dein Loop pausiert, die Lib kümmert sich darum, und springt wieder in den Loop zurück.
 
Ich glaube nicht dass es an dem Ethernet liegt, da das Problem nur bei dem festgelegten Pin auftritt und nicht wenn man einen anderen Pin kurzzeitig überbrückt.
 
Welche Pins genau nimmst du dafür denn her? Schon mal das Arduino Pinout angeschaut, dass du da nicht einen Pin verwendest, der schon eine andere Systemfunktion innehat.
 
Dann nimm die Netzwerkfunktion doch mal raus, und teste.
 
  • Gefällt mir
Reaktionen: 0-8-15 User
Zurück
Oben