www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bitte um Hilfe!!!! Was ist hier falsch? (Timer)


Autor: Alex Haydl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, habe Probleme mit dem Timer, und seinen Startwerten, etc.
was ist hier denn genau falsch? Müsste nur ein bisschen sein. würde es
aber gerne wissen. habe gestern 3 STunden damit zu verbracht dannach zu
such, kann aber nichts finden!!!
danke schonmal für eure HILFE!!!

schönen gruss euch allen

Alex Haydl

und hier der quelltext:



start:

org 000Ch       // Sprung zur programmaddresse 000C um mit Interrupt
                   nicht in Konflikt zu kommen

mov TMOD,#01h  // Modus 1 des Timer 0 (16 - Bit Timer)
setb 0AFh      // Freigabe aller interrupts
mov TH0, 03Ch  // Startwerte des Timers im High - Nibble
mov TL0, 0B0h  // Startwerte des Timers im Low -Nibble
setb TR0       // Startbit des Timers

org 000Bh      // Einsprungadresse des Interrupts
ljmp T0_int    // Sprung ins Interrupt




T0_int
inc P1         // Zähler an P1, wird alle 100µS erhöht
reti           // Zurück ins Hauptprogg


end

Autor: hmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Alex!

Schau dir doch mal das Tutorial auf dieser Seite (den Teil mit den
Interrupts) an.

Der Controller arbeitet deinen Code ab Adresse 0x000 ab und da stehen
dann auch die Sprungbefehle für die Interrupts.


.org 0x000                    ; kommt ganz an den Anfang des Speichers
         rjmp START           ; Interruptvektoren überspringen
                              ; und zum Hauptprogramm
.
.
.
.

START:
   Hier kann jetzt der Code hin...

Meiner Meinung nach kann dein Code nicht funktionieren. Du schreibst
dein Programm an die Adresse 0x000C aber hast keinen Sprung dorthin.
D.h. dein Controller läuft von 0x000 ins Nirvana und macht das was da
zufällig gerade steht.

Versuchs erstmal mit dem Tutorial bevor du den Timerinterrupt
programmierst

ciao
  hmann

Autor: Ingo Henze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm,
also mov und ljmp sieht irgendwie nicht nach AVR aus, oder?
Eher was von Intel, 8051 oder so.

Autor: hmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uups
auch wahr. Das hab ich mir garnichtmehr richtig angeschaut...

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat das schon mal ins *-gcc Forum gepostet, allerdings hätte er ja
hier auch erwähnen können, worum es geht ;-)

Gruß,
Patrick...

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.