Hallo,
ich habe vor dem Post wirklich erst gesucht... sorry, bin noch
C-Anfänger.
Also - der attiny85 hat an PIN0,1,2,3 je eine LED, an PIN4 einen Taster
auf Masse.
Hier mein Code:
Ergebnis: LED an PIN0 blinkt, egal ob ich den Taster drücke oder nicht.
aber: verwende ich innerhalb der Endlosschleife
1
if(PINB&(1<<PINB4))
dann reagiert er auf meinen Taster.
ISR auf PCINT4_vect läuft im compiler auf Warning: ‘PCINT4_vect’ appears
to be a misspelled signal handler [enabled by default]
Ich vermute irgendeinen dummen groben Denkfehler, finde ihn jedoch
nicht.
mfg
Gerd
Gerd Heber schrieb:> ISR auf PCINT4_vect läuft im compiler auf Warning: ‘PCINT4_vect’ appears
Weil es nur einen PCINT ISR gibt. Mit PCMSK setzt man fest welche
Pins einen Interrupt auslösen.
Wenn der PCINT feuert, muss man sehen welcher Pin rückgesetzt ist.
Gerd Heber schrieb:> P.S.: wo hätte ich ein Tutorial oder ähnliches gefunden, dass mich auf> alle diese Punkte hingewiesen hätte?
Im Datenblatt des MC, Kapitel 9 Interrupts. Dadrin gibts es die Register
Description 9.3.
Ich empfehle dir, das Datenblatt immer im Hintergrund zum Nachschlagen
bereit zu haben. Es ist die grundlegende Quelle für Information.
Tutorials o.ä. basieren darauf. Ausserdem kann kein Tutorial alle AVR
abbilden. Der alte ATMega8 z.B. kannte noch gar keine Pinchange
Interrupts.
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.