mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe zum Timer0 beim Atmega32


Autor: hupe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich bin totaler AVR Anfänger und habe mir ein Test-Board mit Atmega32
zugelegt. Mit Assembler kenne ich mich ein wenig aus, jedoch bekomme
ich keinen Timer Interrupt zum Laufen. Ich benutze den Timer0 und
bekomme ihn auch zum zählen, jedoch wird beim Überlauf nicht zur
Adresse für den  Timer überlauf gesprungen.
Vielleicht kann mir ja jemand weiterhelfen und mir Vielleicht die
erforderlichen Befehle schreiben. Irgendwo muss ich ja etwas vergessen
haben.
Vielen Dank im Vorraus,

die Hupe

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig doch einfach mal deinen Code, dann wird dir bestimmt einer sagen
können, was nicht stimmt. Keine Sorge, auslachen wird dich hier keiner,
wenn der Code nicht allzu professionell aussieht.

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

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Assembler Code mit Hilfe von anderen Beispielen aus diesem
Forum geschrieben. Allerdings kenne ich mich mit den Fuse Bits nicht so
gut (oder eher gar nicht) aus, was muss ich denn bei denen beachten?

MfG,
Hupe

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Allerdings kenne ich mich mit den Fuse Bits nicht so
> gut (oder eher gar nicht) aus, was muss ich denn bei denen
> beachten?

Ich wüßte jetzt nichts, hab aber mit dem Mega32 noch nicht gearbeitet.

Was den Code betrifft: Dein Setup stellt den Timer0 ein, aber dein
Interrupt-Handler wird bei Timer1-Overflow aufgerufen.

Autor: hupe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich wohl irgendwann bei den ganzen herum experementieren vertauscht.
Werd es heut abend gleich mal ausprobieren. Melde mich morgen nochmal.
Vielen Dank

Autor: hupe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das funktioniert trotzdem nicht. Wie ist das denn mit den fuse und
lockbits? was muss ich denn dabei beachten?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie ist das denn mit den fuse und lockbits?

Die kannst du am besten erstmal so lassen, wie sie ab Werk sind.
Höchstens mal JTAGEN abstellen, da sonst ein paar I/O-Ports vom
JTAG-Interface belegt sind, soweit ich weiß.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Interrupt-Vektoren des Mega32 sind nicht im Wortabstand (16 Bit)
sondern im Doppelwortabstand (32 Bit). Du musst also statt rjmp jmp
verwenden. Und statt reti zwei Befehle, um das zweite Wort zu füllen.

Nachzulesen im Datenblatt des Mega32 unter Interrupt sources (oder
ähnlich)...

...

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenns aber so gemacht ist wie hier, spielt das keine Rolle.

.org $002 reti           ; IRQ0 Handler
.org $004 reti           ; IRQ1 Handler
.org $006 reti           ; IRQ2 Handler

usw.
Beachten muss man das von dir angesprochene, wenn man alle nur mit nur
einer .org-Anweisung schreibt.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@crazy horse:

Ja, gut, dachte ich nicht dran...

Die Dinger sind übrigens gut angekommen, danke nochmals...

Bit- & Bytebruch...
...HanneS...

Autor: hans dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimmt dir avr studio und den simulator dann siehst du ja was schief
geht...

Autor: hupe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
danke für eure Hilfe. Hat wirklich an der Vektor-Tabelle gelegen. Jetzt
läuft alles einwandfrei.

Danke

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.