Grüße,
ich hoffe, die Frage ist nicht übermäßig blöd - aber ich komme nicht
weiter, auch nach dem Googeln.
Ich habe beim attiny2313 den PORTB Interrupt geschaltet, und die PullUps
aktiviert:
1 | // PINS 0,1,2 auf AUS (3 LEDs dran), 4-7 Eingänge mit Taster gegen GND
|
2 | DDRB=(1<<PB0)|(1<<PB1)|(1<<PB2);
|
3 | //AUS aktiv, EIN mit Pullup
|
4 | PORTB =0xFF;
|
5 | //Pinchange Interrupt
|
6 | GIMSK=(1<<PCIE);
|
7 | //PCMSK->pins maskieren!, nut Änderungen an 4-7 aufnehmen
|
8 | PCMSK|=(1<<PCINT7)|(1<<PCINT6)|(1<<PCINT5)|(1<<PCINT4);
|
So wie ich es verstehe - PullUp bedeutet, dass Pins den 4-7 den Wert 1
haben. Aber - wenn ich da ein taster gegen GND anschließe, wird
Interrupt zwar ausgelöst, aber jegliche Versuche den PIN abzufragen
scheitern - ich habe angenommen, dass Taster gegen GND den PIN auf 0
ziehen würde, aber
1 | ISR(PCINT_vect){
|
2 | if(~PORTB & (1<<7)) ...LED1
|
3 | if(~PORTB & (1<<6)) ...LED2
|
4 | }
|
wird NICHT ausgelöst! Habe ich einen Denkfehler?
Danke im Voraus,
Grüße
Roman