io-Headerfiles lückenhaft? (PCINT3)

OP #4154585
Hallo,
beim Programmieren des ATtiny85 fiel mir auf, daß der gcc herummault, 
ich hätte mich beim PCINT3_vect vertippt:

1
beispiel.c:254:5: warning: 'PCINT3_vect' appears to be a misspelled signal handler [enabled by default]
2
 ISR(PCINT3_vect) {

Habe ich nicht, denn den PCINT3 (und andere, die er auch anmeckert) gibt 
es laut Datenblatt sehr wohl. Den PCINT0 hingegen läßt der gcc 
durchgehen. Den kann ich aber nicht gebrauchen ...

Daraufhin grub ich mal etwas in den Includes. Für den ATtiny88 zB ist 
der PCINT3, um bei dem Beispiel zu bleiben, in dessen iotn88.h 
vorhanden.

Ist das bekannt? Bin ich der erste, der drüber stolpert? Oder nur der 
erste, der das Stolpern dokumentiert?

VG, Jan.
Gast
Im Prinzip richtig, aber eine Klarstellung:
PCINT0

Blöderweise sind die Pins m.E. wirklich etwas mißverständlich benannt.
Sie teilen sich alle einen Interruptvector, eben den PCINT0.

Sagt das Datenblatt auch so, Seite 48, da sind die Interruptvektoren 
gelistet.
Gast
Nein, werden sie nicht. Das bedeutet nur, das jeder Pin einzeln für die 
Interrupt-Auslösung freigeschaltet werden kann, nicht das jeder einen 
eigenen Interruptvektor hätte.
Gast
Ich weiss nicht wie es auf dem Tiny85 ist, aber beim Tiny13 gibt es nur 
eine ISR für pcint. In der muss man dann die Eingänge selber prüfen.

Grüsse,
René

e.g.
1
ISR (PCINT0_vect)
2
{
3
    uint8_t changedbits;
4

5
    changedbits = PINB ^ portbhistory;
6
    portbhistory = PINB;
7

8
    if(changedbits & (1 << PB0))
9
    ...
Gast
Ist auf dem 85 auch so. Auf anderen Tinies mit mehr Ports gibts dann 
auch PCINT1 und teils auch 2 usw. Die dann aber immer für alle Pins 
eines Ports zuständig sind.
OP
Jepp, die Tabelle unter Kap. 9.1 sagt es implizit:

1
rjmp RESET           ; Address 0x0000
2
rjmp INT0_ISR        ; Address 0x0001
3
rjmp PCINT0_ISR      ; Address 0x0002
4
rjmp TIM1_COMPA_ISR  ; Address 0x0003
5
rjmp TIM1_OVF_ISR    ; Address 0x0004
6
:
7
:

Und der Text danach erläutert. Es gibt bei dem t85 nur einen Vektor für 
PCINT0.

Aaach, es ist doch immer dasselbe: kaum schaut man mal richtig im 
Datenblatt an den relevanten Stellen, schon lüften sich Mysterien ;-)

Danke fürs Hinschubsen an alle schnellen Erläuterer hier!

VG, Jan.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.