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
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
uups auch wahr. Das hab ich mir garnichtmehr richtig angeschaut...
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...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.