Forum: Mikrocontroller und Digitale Elektronik Timer - Interrupt Aufgabe


von Sebastian (Gast)


Lesenswert?

Hallo.
Folgend ist eine Schulaufgabe bei der ich nicht weiterkomme.
Es geht um die Programmierung eines AT89C51ED2 in Assembler

Der Timer0 soll in der Betriebsart 1 (Mode1) als 16 Bit Zähler arbeiten. 
Alle 65 ms soll das Timer Overflow Flag (Interrupt Request FlipFlop) TF0 
gesetzt und dadurch ein Interrupt erzeugt werden. Die Interrupt Service 
Routine (ISR) hat die Aufgabe die LED Anzeige an Port2 fortlaufend um 1 
zu erhöhen und das 16 Bit Zählregister nach zu laden.

Hat mir jemand für dieses Programm ein Programmcodevorschlag ?

Danke im Vorraus

MFG

von Falk B. (falk)


Lesenswert?


von Ralf (Gast)


Lesenswert?

> Hat mir jemand für dieses Programm ein Programmcodevorschlag ?
Ja:
1. allgemeine Initialisierung (Schnittstelle, RAM, etc.)
2. Timer 1 initialisieren und Interrupt freischalten
3. Sprung auf 3 (Endlosschleife)

Timer 1 ISR:
1. Timer 1 nachladen
2. Port 2 inkrementieren

Den fertigen Code wirst du nicht bekommen, du sollst ja beweisen, dass 
du es wirklich begriffen hast. Ausserdem hast du eh nicht alle 
notwendigen Infos gepostet, falls jemand doch fertigen Code liefern 
würde.

Was du aber machen kannst und wobei dir garantiert geholfen wird ist 
dass du das Programm basierend auf deinem Wissen schreibst, und wenn's 
nicht tut, den Code hier postest, zusammen mit der Fehlerbeschreibung 
(geht nicht ist zu wenig, LEDs toggeln zu schnell/langsam oder IRQ wird 
nicht ausgelöst ist eine bessere Beschreibung).
Vergiss nicht, deinen Code aussagekräftig zu dokumentieren, damit wir 
sehen können, was du machen möchtest und was du tatsächlich machst.

Ralf

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
Noch kein Account? Hier anmelden.