Timer 0 programmierung bei 8051

OP #257116
Lesenswert?
• ▲
▼
Hallo Leute!

Bin noch Neuling bei der µC Programmierung, gehe zwar in die
Abendschule, aber dort wird uns aus Zeitmangel einfach zu wenig
erklärt.

Mein Problem:

Das Prog ist für einen 50c517a geschrieben, typisches Anfängerprog
halt.

Ich glaub, ich kapier grundsätzlich nicht, wie ein Timer arbeitet.
Das mit den Initialisierungen ist mir klar, aber warum blinken die Leds
an Port1 1s lang, 1s nicht, 1s wieder,...

Wäre nett, wenn ihr für einen Anfänger mal wieder etwas Gedult
aufbringen könntet!

Danke im voraus,

Gruß Jörn
Angehängte Dateien:
#257117
Lesenswert?
• ▲
▼
Ist Dir klar wie die 1 sek zustande kommt?

Das Blinken ist leicht erklaert:
Zustaendig dafuer ist die Anweisung
   P1=~P1;
und da wiederum das '~'
Der ~ - Operator dreht einfach alle Bits um.
Enthaelt also P1 (und damit das Port) den binaeren Wert

      00100101

dann macht ~P1

      11011010

daraus. Jedesmal, wenn Dein Pgm also auf

      P1 = ~P1;

stoesst, werden alle Bits einfach umgedreht und damit werden
die Leds ein bzw. ausgeschaltet.
OP #257118
Lesenswert?
• ▲
▼
Hallo Karl,

danke für die schnelle Antwort!
Jetzt ist mir dises Phänomen klar!
Am Anfang steht das Port auf 0xFF,dann nach ~ wieder auf 0x00, usw.
Naja, aller Anfang ist halt schwer!

Ich hatte vergessen zu erwähnen, wegen der Zeit.
Dies ist mir auch zum Glück auch klar (Hoff ich halt)!


In Kurzfassung:
Jedesmal, wenn der Timer einen Interrupt auslöst (nach 250µs),
wird diese Basis bis 4 hochgezählt = 1ms.
dann wird diese Basis mit der Var. tsek bis 1000 gezählt:
Ergebnis: 1s

Der Timer löst zwar alle 250µs durch den Reload-Modus die ISR aus, aber
solange die Bedingungen nicht erfüllt sind, wird auch der Port1 nicht
invertiert.

Schätz einmal, das ist so etwa richtig.

Jetz kann ich hoffentlich mein Protokoll für die Schule RICHTIG fertig
schreiben.

Gruß Jörn
Gast #257119
Lesenswert?
• ▲
▼
Hallo!

Ich bin auch gerade in meinen Anfängen der µC Programmierung, ebenso
mit dem 8051. Mein Problem setzt früher an. Könnte mir jemand ein
kurzes Tutorial für einen simplen Timer geben, der auf eine Sekunde
genau zählen kann?

gruß Norman

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren