Hallo,
ich möchte in einem Programm mit while() auf einen Tastendruck warten.
D.h. die nachfolgende Aktion (PB5 = High) soll nur dann durchgeführt
werden, wenn am PIN B4 ein High-Signal ankommt.
Mein Programm bleibt aber immer bei der while-Schleife stehen, egal ob
ein low oder ein high-Signal anliegt.
Bitte um Hilfe!
Hier der Code:
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 |
|
4 | void main(void)
|
5 | {
|
6 | DDRB &= ~(1<<PINB4); // Set PINB4 input
|
7 | DDRB |= (1<<PB5); // Set PB5 output
|
8 |
|
9 | while(1)
|
10 | {
|
11 |
|
12 | while (!(1<<PINB4)) // Wait for PINB4 to be set
|
13 | {
|
14 | PORTB = (1<<PB5);
|
15 | }
|
16 | }
|
17 | }
|