Na software interrupt spring naar loop()

Arduino specifieke Software
Berichten: 39
Geregistreerd: 03 Mrt 2014, 18:35

Na software interrupt spring naar loop()

Berichtdoor Leen » 09 Aug 2019, 17:10

Hallo,

Ik wil terug springen naar het begin van het programma ( loop() ) na een software interrupt zodat het programma start vanaf het begin.

Het betreft een( Arduino DUE )

Ik heb een klein programma toegevoegd om te testen of het werkt, tevens heb ik al meerdere voorbeelden getest maar tot heden werkt het niet goed.

Graag een tip hoe dit op te lossen.


Bij voorbaat bedankt,

Leen


#include <DueTimer.h>

volatile byte state = LOW;

int LED_1 = 41;
int LED_2 = 53;

void setup() {
pinMode(LED_1,OUTPUT);
pinMode(LED_2,OUTPUT);

Timer3.attachInterrupt(MSec).start(1000); // Every ms
}

void(* resetFunc) (void) = 0; // Declare reset function @ address 0

void loop() {

digitalWrite(LED_2, HIGH); // Short pulse

while (1){
digitalWrite(LED_2, LOW); // Reset pulse
}
}
void MSec(){
state = !state;
digitalWrite(LED_1, state);


resetFunc(); // Return to loop
}

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Na software interrupt spring naar loop()

Berichtdoor Koepel » 09 Aug 2019, 19:06

Het lijkt er op dat je een verkeerde oplossing probeert te vinden voor het verkeerde probleem.
Ken je deze website: http://xyproblem.info/.

Kun je vertellen wat je project is ?
Waarschijnlijk is het met normale code of met millis() te maken.

Vanzelfsprekend krijg je dezelfde soort antwoorden hier: https://forum.arduino.cc/index.php?topic=630655.0.

Berichten: 39
Geregistreerd: 03 Mrt 2014, 18:35

Re: Na software interrupt spring naar loop()

Berichtdoor Leen » 10 Aug 2019, 11:27

Hallo,

Als ik de resetFunc(); verwijderd werkt msec timer interrupt goed maar springt terug naar de while loop ( ok dat is normaal )

Maar de vraag is of het mogelijk is om terug te springen naar het begin van het programma.

Leen

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Na software interrupt spring naar loop()

Berichtdoor shooter » 10 Aug 2019, 11:49

allereerst zoek eens uit hoe een interrupt werkt.
Stel even dat je aan het rijden ben met de auto,
je krijgt dan een interupt waarin je de radio wat harder zet.
maar jij wilt dan het programma herstarten en dus de versnelling in zijn 1 zetten en de koppeling laat opkomen.
en dat terwijl je dus 120 rijd. dat wordt lachen.
een interupt is een subprogramma dat even werkt en daarna weer teruggaat naar zijn originele programma.
wat je wel kan doen is een vlag aanzetten(in die interupt), en dan in je hoofdprogramma op die vlag testen.
paul deelen
shooter@home.nl

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Na software interrupt spring naar loop()

Berichtdoor shooter » 11 Aug 2019, 16:45

Omdat je aan het begin wil beginnen kun je ook de reset gebruiken. dan start het helemaal opnieuw op, voor nog meer zekerheid. die reset gaat vanzelf weer uit als je reset.
paul deelen
shooter@home.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: ewoyakir en 22 gasten