folgendes Problem:
ich habe 5 LED an Port D (und einen Taster aber der is egal)
mit dem Programm unten leuchten die leds nur ganz schwach, sehr schwach,
mit jedem beliebigen anderem Programm in voller Leuchtkraft ?!
Messung direkt am Port zeigt 2V an, bei anderen Programmen 4,6V.....
ich verstehe absolut nicht wieso....
1 | #define F_CPU 8000000UL
|
2 |
|
3 |
|
4 | #include <avr/io.h>
|
5 | #include <util/delay.h>
|
6 | #include <stdint.h>
|
7 |
|
8 |
|
9 |
|
10 | int main (void)
|
11 | {
|
12 |
|
13 | DDRD = (0<<2); // Taster an PD2
|
14 |
|
15 | uint8_t x;
|
16 | x=0;
|
17 |
|
18 |
|
19 | while(1)
|
20 | {
|
21 | if (!(PIND & (1<<2))) /// Wenn taster an PD2 gedrückt,...
|
22 | {
|
23 | x++;
|
24 | if(x==2) x=3; /// Da an PD2 keine Led sonder taster ist, wird x=2 übersprungen
|
25 | if(x==6) x=0; /// Bei x = 6 wir x 0 weil es ja nur 5 leds gibt.
|
26 | _delay_ms(50);
|
27 | }
|
28 |
|
29 | PORTD = (1<<x); /// xte LED leuchtet
|
30 | }
|
31 |
|
32 |
|
33 |
|
34 | }
|