Forum: Compiler & IDEs Interrupt Vector für Input Capture Unit bei Tiny261?


von Patrick (Gast)


Lesenswert?

Moin,

ich bin gerade auf der Suche welcher Interruptvector bzw. welche 
Definition gilt. Dazu hab ich den neuen WinAVR installiert. Darin gibt 
es ein H File für den 261 welches das iotnx61.h mit einbindet. Leider 
finde ich nicht die Definition für den Interrupt der Input Capture Unit? 
Wie ist die Schreibweise in GCC?  ISR(TIMER0_CAPT_vect) ??

Gruss Patrick

von Johannes M. (johnny-m)


Lesenswert?

Wenn Du den WINAVR installiert hast, warum schaust Du dann nicht einfach 
in die libc-Doku (die wird schließlich automatisch mitinstalliert). Da 
steht alles drin. Abgesehen davon entsprechen die Vektornamen i.d.R. den 
in der Interrupt-Tabelle im jeweiligen Datenblatt angegebenen (bis auf 
das angehängte "_vect" natürlich).

von Patrick (Gast)


Lesenswert?

in der Doku hab ich nichts gefunden, aber ich glaub es müsste 
SIG_INPUT_CAPTURE0 sein

Gruss Patrick

von Jörg X. (Gast)


Lesenswert?

Ein kurzes <Strg>+<F> in der iotnx61.h sagt, dass es tatsächlich 
"TIMER0_CAPT_vect" heißt, allerdings steht da wörtlich:
1
/* ADC Conversion Complete */
2
#define TIMER0_CAPT_vect    _VECTOR(16)"
:P

hth. Jörg

von Johannes M. (johnny-m)


Lesenswert?

Patrick wrote:
> in der Doku hab ich nichts gefunden, aber ich glaub es müsste
> SIG_INPUT_CAPTURE0 sein
Die "SIG_IRGENDWAS"-Namen sind veraltet. Die gehörten ursprünglich zu 
den ISR-Vorgängern "SIGNAL". Wie ich oben geschrieben habe, einfach Name 
aus dem Datenblatt (mit Underscores statt Blanks) und "_vect" hinten 
dran.

@Jörg:
Schön, das ist natürlich ein dicker Hund. Allerdings halte ich die 
Vektornamen für weitgehend selbsterklärend, so dass es mit ein wenig 
Überlegung eine eindeutige Zuordnung geben sollte...

Allerdings ist natürlich problematisch, dass dank Doxygen der Fehler 
auch in der Dokumentation steckt und man sich auch in der Tabelle nen 
Wolf suchen kann. Fällt allerdings schon auf, dass da mitten zwsichen 
den ganzen Timer-Vektoren einsam und verlassen ein ADC-Vektor steht...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das ist zwar kein Doxygen-Kommentar, aber...
1
                <VECTOR17>
2
                        <PROGRAM_ADDRESS>$010</PROGRAM_ADDRESS>
3
                        <SOURCE>TIMER0_CAPT</SOURCE>
4
                        <DEFINITION>ADC Conversion Complete</DEFINITION>
5
                </VECTOR17>

So steht's im partdescription-XML-File von Atmel. :-/  Da haben
wir es dann auch in der avr-libc geerbt, und von da ist es auch
in die Doku gewandert. :-/

Mach mal 'nen Bugreport bei Atmel auf dafür.

von Johannes M. (johnny-m)


Lesenswert?

Jörg Wunsch wrote:
> Das ist zwar kein Doxygen-Kommentar, [...]
Ah so, ich hatte in die entsprechende .h-Datei gar nicht reingeschaut. 
Aber da sich die Tabelle in der Beschreibung der interrupt.h befindet, 
hätte ich da auch selbst drauf kommen können...

> [...] aber...
>
1
                 <VECTOR17>
2
                         <PROGRAM_ADDRESS>$010</PROGRAM_ADDRESS>
3
                         <SOURCE>TIMER0_CAPT</SOURCE>
4
                         <DEFINITION>ADC Conversion Complete</DEFINITION>
5
                 </VECTOR17>
>
> So steht's im partdescription-XML-File von Atmel. :-/  Da haben
> wir es dann auch in der avr-libc geerbt, und von da ist es auch
> in die Doku gewandert. :-/
Aha.

> Mach mal 'nen Bugreport bei Atmel auf dafür.
OK...

Gruß

Johannes

von Patrick (Gast)


Lesenswert?

kann mal einer die aktuelle Version der iotnx61.h anhängen? Ich glaub da 
gibt's viele Versionen wo jeweils andere "falsche" Bezeichnungen 
enthalten sind.

Gruss Patrick

von Johannes M. (johnny-m)


Lesenswert?

Patrick wrote:
> kann mal einer die aktuelle Version der iotnx61.h anhängen? Ich glaub da
> gibt's viele Versionen wo jeweils andere "falsche" Bezeichnungen
> enthalten sind.
Also bis auf den einen falschen Kommentar wüsste ich von keinem Fehler. 
Und das Problem ist doch jetzt hoffentlich endgültig geklärt, oder etwa 
nicht?

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.