8051 Timer Assembler

OP #1597858
Lesenswert?
• ▲
▼
Nabend,

wenn ich mit dem Timer 0 overflowed wird der TF0 zu 1, aber wie lang 
bleibt der eigentlich eins ? Mit meinem Simulator ist der fünfmal durch 
die Schleife nach einem Overflow, wie macht man es wenn er nur einmal 
durch soll und dann abwarten.

org 8000h

mov a,#01h
mov p1,#01h

MOV TMOD,#01
SETB TR0

b1:JNB TF0,$
rl a
mov p1,a
mov a,p1

ljmp


Welcher befehl kopiert aus dem Akku in p1 ohne dass ich mov 2 mal machen 
muss
Gast #1598023
Lesenswert?
• ▲
▼
Mal angenommen, Du willst 1-Sek-Perioden haben, dann lade  r1 mit 20, 
lass alle 0.05 Sek den Interrupt auslösen, decrementiere R1 in der 
Interrupt-Service-Routine und prüfe auf Null. Ist R1 == Null, dann ist 1 
Sekunde rum.
-Holger
#1598149
Lesenswert?
• ▲
▼
Gerd Schanze schrieb:
> Echt spartanisch sogar c gegenüber ;)

Was hast Du erwartet?
Assembler ist auf jedem MC umständlicher als C.

Wobei der 8051 noch ganz hübsche Kombibefehle hat (DJNZ, JBC, CJNE), die 
z.B. der AVR nicht hat. Und viele Befehle auch auf dem direkten RAM 
(0x00-0x7F) ausführbar sind.

Z.B. das "DJNZ RAM-Variable" im Interrupthandler braucht nichtmal 
PUSH/POP, um Register zu sichern, da es weder Flags noch den ACCU 
verändert.


Peter

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.