www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR ATmega16 Datenverlust zwischen Interrupt Routinen


Autor: Felix (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem bei einem Programm, das Interrupts benutzt. Je
nach Pegel an einem der analogen Eingänge soll ein Wert erzeugt werden,
der einem über einen Timer gesteuerten Counter als Endwert dient.
Dies ist nur ein Teil eines größeren Projekts. Die Interrupts werden
auch korrekt ausgeführt, jedoch scheint es beim Übergang von der ISR
für  das Ende eine A/D-Wandlung zum der ISR für den Timerüberlauf zu
Datenverlust zu kommen.
Der Stack ist natürlich initialisiert und die Einstellungen für den
Timer und den A/D Wandler sind auch bereits durchgeführt. Der Vorteiler
für den A/D Wandler ist auf 128 eingestellt. Der Systemtakt beträgt
4Mhz

Egal was ich in der ISR für den A/D Wandler in die Variablen t_value..
(Register R18-R20) schreibe, scheint der Zähler in der ISR des Timers
immer überzulaufen und der Sprung zu "clock_event" wird ausgeführt.

Im Hauptprogramm, das in einer Schleife die meiste Zeit irgendwelche
Ein- und Ausgänge abfragt bzw. verändert, wird auf keins der Register
R18-R20 zugegriffen.

Habe ich irgendeinen Denkfehler gemacht, oder etwas vergessen?
Hatte vielleicht jemand bereits ein ähnliches Problem?

Vielen Dank schon einmal für Eure Bemühungen!

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hatten wir doch gestern erst:
http://www.mikrocontroller.net/forum/read-1-301968...

...

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die schnelle Antort.

Den Beitrag vom Vortag hatte ich zwar gelesen, aber trotzdem hatte es
bei mir nicht "klick" gemacht. Also danke für den Hinweis

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.