Hallo,
ich habe angefangen Microcontroller zu programmieren nun habe ich ein
Problem. Bei dem unten angefügten Programm, soll nach jedem tasten die
nächste LED angesteuert werden. Nun werden aber gleich beim ersten
Tasten alle LEDs gleichzeitig angesteuert. Kann mir bitte jemand
weiterhelfen?
Prozessor: ATmega8
Source:
1 | #define F_CPU 3686400 // Taktferquenz des myAVR-Boards
|
2 | #include <avr\io.h> // AVR Register und Konstantendefinitionen
|
3 | //----------------------------------------------------------------------
|
4 | main () // Hauptprogramm, startet bei Power ON und Reset
|
5 | {
|
6 | DDRB = 0xFF;
|
7 | DDRD = 0x00;
|
8 | PORTD = 0xFF;
|
9 | unsigned char i;
|
10 | do { // Schleifenanfang Mainloop
|
11 | if(!(PIND&0x04))
|
12 | {
|
13 | i++;
|
14 | if(i = 1)
|
15 | {
|
16 | PORTB = 0x01;
|
17 | }
|
18 |
|
19 | if(i = 2)
|
20 | {
|
21 | PORTB = 0x02;
|
22 | }
|
23 |
|
24 | if(i = 2)
|
25 | {
|
26 | PORTB = 0x04;
|
27 | }
|
28 |
|
29 | }
|
30 |
|
31 | } while (true); // Schleifenende Mainloop
|
32 | }
|
33 | //----------------------------------------------------------------------
|
mfG Tim