Forum: Mikrocontroller und Digitale Elektronik Timer0 OCM Tiny2313


von Julian O. (juliano)


Lesenswert?

Gute Nacht liebes Forum,

ich habe ein Problem mit dem Tiny2313. Laut dem Datenblatt (Seite 82) 
existiert beim Timer0 die Möglichkeit einen Output Compare Match 
Interrupt zu generieren.
In meiner iotn2313.h finde ich aber keinen passenden Interrupt-Vektor? 
Hab ich da was falsch verstanden?

Grüße und gute Nacht, Julian

von Hannes Lux (Gast)


Lesenswert?

> Laut dem Datenblatt (Seite 82)

Du meinst vermutlich das Timer-Interrupt-Freigabe-Register TIMSK...

> existiert beim Timer0 die Möglichkeit einen Output Compare Match
> Interrupt zu generieren.

Nein, nicht "einen", sondern sogar zwei, nämlich über OCIE0A und OCIE0B.

> In meiner iotn2313.h finde ich aber keinen passenden Interrupt-Vektor?

Laut Seite 47 Tabelle 21 des Datenblattes liegen die beiden Vektoren an 
Adresse $0d und $0e. Falls in der Header-Datei für C diese Einträge 
wirklich fehlen sollten (ich weiß das nicht, ich werkele in ASM), dann 
solltest Du vielleicht mal schaun, ob es eine neuere Version gibt. Fehlt 
es dort auch, dann könntest Du ja Kontakt zum Autor der Datei aufnehmen.

> Hab ich da was falsch verstanden?

Vermutlich nicht.

...

von Julian O. (juliano)


Lesenswert?

Danke schonmal für deine Antwort Hannes, jetzt weiß ich immerhin, dass 
ich mich nicht völlig verrant habe. Jetzt wäre es noch super, wenn mir 
jemand sagen könnte, wo ich eine "aktuelle" include-datei finde.

Ich habe eine relativ Neue Version von WinAVR (ca. 3 Monate alt). In der 
iotn2313.h dieser Version ist der Interrupt-Vektor für den Output 
Compare Match nicht vorhanden

von Hannes Lux (Gast)


Lesenswert?

> Ich habe eine relativ Neue Version von WinAVR (ca. 3 Monate alt). In der
> iotn2313.h dieser Version ist der Interrupt-Vektor für den Output
> Compare Match nicht vorhanden

Das werde ich jetzt weder "glauben" noch abstreiten, C ist nicht meine 
Baustelle... Aber:

Hinter dem Vektor-Makro verbirgt sich doch auch nur die Adresse in der 
Sprungtabelle. Was hindert Dich also daran, mal die anderen Vektoren mit 
der Interrupt-Sprungtabelle (und deren Adressen) im Datenblatt zu 
vergleichen, das System zu begreifen und Dir Dein eigenes Makro (oder 
Define oder wieauchimmer so ein Alias genannt wird) für den Vektor zu 
schreiben?

> für den Output Compare Match

Und nochmal: Es gibt nicht den Compare Match, es sind mehrere 
Compare-Kanäle, demnach auch mehrere Compare-Match-Interrupts, siehe 
Beschreibung der Sprungtabelle im Datenblatt.

...

von Justus S. (jussa)


Lesenswert?

in meiner Version der iotn2313.h vom 11.06.08 sind die durchaus 
drinnen..TIMER0_COMPA_vect und TIMER0_COMPB_vect...

von Julian O. (juliano)


Lesenswert?

Lösung gefunden: In meiner Datei sind die Interrupt-Vektoren in einzelne 
Blöcke geteilt und mit entsprechender Kommentar-Überschrift versehen. 
Nur, dass sich der Timer0 COMPA Vektor unter der Überschrift "Analog 
Comparator" versteckt hat.

Danke euch allen!

von Hannes Lux (Gast)


Lesenswert?

Man gut, dass es Assembler gibt... ;-)

(Da muss man nicht so vielerlei verschiedene Dokumente beachten, da ist 
alles so schön einfach und überschaubar...)

...

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.