www.mikrocontroller.net

Forum: Compiler & IDEs ATmega88, Timer0 Interrupt wird nicht ausgeührt


Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe eine lauffähige Software, die vom ATmega8 auf den ATmega88 
portiert werden soll.

Mein großes Problem: der Timer0 Interrupt wird korrekt ausgelöst, aber 
der Simulator springt ins Nirwana. Verdammt noch mal, warum wird die 
Interruptroutine nicht angsprungen???

Ich habe hier im Forum gesucht und zwar gesehen, dass solche Probleme 
hier ab und zu angefragt werden, aber die Lösung habe ich nicht 
gefunden.

Aber nun habe ich sie, die Lösung:
Ich benutzte ebenso die externen Interrupts 0 und 1. Ihre Reaktionen auf 
Flanken werden im Register MCUCR im ATmega8 eingestellt. Beim ATmega88 
aber wird mit MCUCR z.B. die Startadresse für die Interruptvektoren 
verändert.

Gruß
Harry

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harry schrieb:

> Ich habe hier im Forum gesucht und zwar gesehen, dass solche Probleme
> hier ab und zu angefragt werden, aber die Lösung habe ich nicht
> gefunden.

und auf die Idee, einfach in die AppNote von Atmel für den Wechsel von 
Mega8 auf Mega88 bist du nicht gekommen? Dort wird fein säuberlich 
aufgelistet, welche Register und Bits sich geändert haben...

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, bin ich nicht.

Mein Kontakt zu Bootloadern war bisher so minimal, dass mir nicht 
bewusst war, dass die Interruptadressen sich verändern lassen. Also 
waren die Adressen für mich fix.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal im Simulator in der unteren Fensterzeile. Da mauss ATMEGA88 
stehen. Wenn du dein Projekt im Studio öffnest, musst du das mit dem 
neuen Controller tun. Also Projekt öffnen -> Next -> Controllertyp 
wählen ->... Sonst kennt der Simulator die Adressmap nicht und springt 
nach oder vor der Interruptroutine wieder zu reset. Hatte ein ähnliches 
Problem. Ich hoffe es hilft!

Gruß, Jens

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.