Aufrufen einer Funktion mit Interrupt

Gast #235778
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.
Angehängte Dateien:
#235779
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;
    }
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.