Forum: Mikrocontroller und Digitale Elektronik Aufrufen einer Funktion mit Interrupt


von David Huber (Gast)


Angehängte Dateien:

Lesenswert?

hi

habe immer noch das alte problem dass ich eine Unterfunktion nicht mit
einem externen interrupt auslösen kann!!
ich rufe die unterfunktion nun mit dem flag (wie empfohlen)auf aber
habe trotzdem keinen erfolg!

µC: Atmega32
verwende das STK500

bei dem programm geht es nur um die moto_move funktion!!
und wenn ich da programm ausführe kann ich keine Spannung an
PA4 oder PA2 messen!!

vielleicht kann sichs einer mal kurz ansehen ob ich einen grundlegenden
fehler übersehen habe.

von Hermann G. (hahgeh)


Lesenswert?

Sobald ein Interrupt ausgelöst wird löschst du das Flag wieder in der
SIGNAL-Funktion durch Schreiben einer 1.

Das heißt egal wann du es abfragst, es wird immer 0 sein.

Du müßtest eine Varibale mit volotile definieren und diese beim
Interrupt löschen und beim abarbeiten wieder setzen.

SIGNAL(...){
  flag = 1;
}
.
.
main(...){...
  while(1){
    if(flag){
      moto_move();
      flag=0;
    }
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.