hallo! ich habe mir das Atmel Evaluations Board von Pollin zugelegt und
hab jetzt aus dem Internet folgenden Code kopiert und rübergespielt.
Code:
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 |
|
4 | char _port1 = 0xFF;
|
5 | char _port2 = 0xFF;
|
6 |
|
7 | int main ()
|
8 | {
|
9 | DDRA |= 0xFF;
|
10 | PORTA = 0xFF;
|
11 | while (1)
|
12 | {
|
13 | //Vorwärts
|
14 | for (int _ledPos=0;_ledPos < 7;_ledPos++)
|
15 | {
|
16 | _port1 = (64 >> _ledPos);
|
17 | _port2 = (128 >> _ledPos);
|
18 | PORTA = ~(_port1 | _port2);
|
19 | _delay_ms (100);
|
20 | }
|
21 | //Rückwärts
|
22 | for (int _ledPos=7;_ledPos > 0; _ledPos--)
|
23 | {
|
24 | _port1 = (128 >> _ledPos);
|
25 | _port2 = (64 >> _ledPos);
|
26 | PORTA = ~(_port1 | _port2);
|
27 | _delay_ms (100);
|
28 | }
|
29 | }
|
30 | }
|
Das ist so eine Art Knight-Rider-Lauflicht für 8 LED. Funktioniert
eigentlich auch alles, aber mir ist aufgefallen, das sich die 2. LED nie
ausschaltet. Habe nachgemessen und festgestellt, dass PA1 immer auf +
bleibt und nie ausschaltet. Hab die Schaltung im ausgeschaltenen Zustand
nachgemessen und festgestellt das keine Hardware Verbindung in der
Schaltung zwischen PA1/LED2 und + vorliegt.
Könnte mir wer sagen wo der Fehler liegen kann?
Danke!
mfg
Snowy