Und wie ist deine LED angeschlossen?
KOnzentrier dich doch erst mal nur auf 1 Taste anstatt gleich die ganze
Matrix.
Damit die Taste links oben im Eck deine LED steuert muss PB0 als
Ausgansg und auf 0 sein, während PB4 auf Eingang + Pullup steht.
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 |
|
4 |
|
5 | int main()
|
6 | {
|
7 | DDRB = ( 1 << PB0 ); // PB0 auf Ausgang
|
8 | // damit ist PB4 automatisch Eingang
|
9 |
|
10 |
|
11 | PORTB = ( 1 << PB4 ); // PB4 auf 1, damit ist PB4 ein Eingang mit Pullup
|
12 | // während PB0 damit automatisch auf 0 gelegt wird
|
13 |
|
14 |
|
15 | DDRA = 0xF0;
|
16 |
|
17 | while( 1 ) {
|
18 |
|
19 | if( PINB & ( 1 << PB4 ) )
|
20 | PORTA |= ( 1 << PA7 );
|
21 | else
|
22 | PORTA &= ~( 1 << PA7 );
|
23 | }
|
24 | }
|
und das probierst du erst mal.
(Wozu sollen die 15k gut sein? Das einzige was du damit erreichst ist,
dass du einen Spannungsteiler mit dem internen Pullup Widerstand
gebastelt hast. Und ob das noch reicht, dass der Pin den Eingang als
High akzeptiert? Ich weiß nicht. Weg mit den 15k.)