Timer mehrfach Overflow, dann erst Interrupt?

Gast #2597013
Lesenswert?
• ▲
▼
Hallo und einen Guten Abend,

ich beschäftige mich momentan mit dem Timer eines 8051er und weiß wie er 
geht, ein Interrupt kann ich mit ihm beim Overflow auslösen, jetzt habe 
ich eine Frage dazu, da es ja sehr schnell ist, wenn er von 0 auf seine 
16 bit kommt und überläuft, kann man da etwas bei den SFR einstellen, 
das er z.B. erst beim 10. mal Überlaufen das Interrupt auslöst?

ich habe es jetzt so gemacht das ein Register hoch zählt und bei der 
bestimmten Anzahl an überläufen die Interrupt-Routine ausführt.

Kann mir jemand helfen?


Danke schon mal an alle!
Gast #2597093
Lesenswert?
• ▲
▼
Reinhard B. schrieb:
> Einfach in der ISR eine Variable runterzählen. Nennt sich dann Software
> Timer.

Ist vom Ansatz das Gleiche wie

Simon schrieb:
> ich habe es jetzt so gemacht das ein Register hoch zählt und bei der
> bestimmten Anzahl an überläufen die Interrupt-Routine ausführt.

Ich kenne mich mit dem 8051 nicht aus, aber ich denke nicht, dass das 
geht. Das übliche Vorgehen ist das Zählen einer Variable. Alternativ 
kann man auch vielleicht noch den Vorteiler runterstellen.
Gast #2597103
Lesenswert?
• ▲
▼
> ich habe es jetzt so gemacht das ein Register hoch zählt und bei der
> bestimmten Anzahl an überläufen die Interrupt-Routine ausführt.

So macht man das (oder eine Variable).

Hardware ist hardware weil hwardware so hard ist daß du dir bei ihr 
nicht einfach was wünschen kannst.
Gast #2597112
Lesenswert?
• ▲
▼
Hi

>> ich habe es jetzt so gemacht das ein Register hoch zählt und bei der
>> bestimmten Anzahl an überläufen die Interrupt-Routine ausführt.

>So macht man das (oder eine Variable).

Es ist aber sinnvoller herunter zu zählen. Bei Null wird das Zero-Flag 
gesetzt und ein zusätzlicher Vergleich entfällt.

MfG Spess
Gast #2597135
Lesenswert?
• ▲
▼
Okey, jetzt habe ich da was gefunden, finde jedoch nichts dazu, bzw. 
blick das nicht so ganz, kann mir jemand weiterhelfen mit dem 
"MC8048-Timer"??

(Funktion als MC8048-Timer. Das Low-Byte arbeitet als 5-bit-Vorteiler 
(max, interner Systemtakt/32))
#2597210
Lesenswert?
• ▲
▼
spess53 schrieb:
> Es ist aber sinnvoller herunter zu zählen. Bei Null wird das Zero-Flag
> gesetzt und ein zusätzlicher Vergleich entfällt.

Der 8051 hat kein Zero-Flag. JZ bzw. JNZ prüfen direkt, ob ACC = 0 ist.

Allerdings hat der 8051 den Befehl DJNZ, der bei != 0 springt und keine 
Flags beeinflußt. Man muß also nichts pushen, wenn man ihn in der ISR 
benutzt.

Der 8051-Befehlssatz ist sehr gut auf Steuerungen optimiert worden.


Peter
Gast #2597227
Lesenswert?
• ▲
▼
Hi

>Der 8051 hat kein Zero-Flag. JZ bzw. JNZ prüfen direkt, ob ACC = 0 ist.

Ich hatte erst vor kurzem bei verschiedenen Controllern nach den 
verfügbaren Flags nachgesehen, und die hatten alle ein Z-Flag. 8051 habe 
ich allerdings nicht in meiner Datenblatt-Sammlung. Daher ist mir dieser 
Unterschied entgangen. DJNZ ist mir vom Z80 ein Begriff.

MfG Spess
Gast #2597676
Lesenswert?
• ▲
▼
Danke für eure Hilfe, ich weiß jetzt, das der Controller den ich 
verwende auf 13 bit gestellt, steht net im Datenblatt, aber Keil 
µVision4 hats mir im Debug-Mode gezeigt, hab mit dem Mode noch nie 
wirklich gearbeitet, aber Trotzdem danke ich werde mich damit dann noch 
weiter auseinander setzen, ist ein sehr interessantes Thema =D
#2597799
Lesenswert?
• ▲
▼
Simon schrieb:
> das der Controller den ich
> verwende auf 13 bit gestellt, steht net im Datenblatt

Manchmal lagern die Hersteller die Peripheriebeschreibung in extra PDFs 
aus.
Z.B. bei Atmel in das "8051 Microcontrollers Hardware Manual".

Der 13Bit-Mode wird wirklich sehr selten verwendet, wenn das zufällig ne 
günstige Interruptrate ergibt.
Häufiger ist der 16 oder 8Bit-Mode.


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.