PIC24F LED Ansteuerung

OP #3132353
Lesenswert?
• ▲
▼
Hallo!

Auf einem Explorer 16 Development Board unter Verwendung von dem 
PIC24FJ128GA010 musste ich die Knight Rider LED Schleife nachbauen, das 
habe ich auch ohne Probleme geschafft. Jedoch wollte ich ein paar 
weitere Muster ausprobieren. Es sind 8 LEDs und ich wollte, dass die 
Lichtkette an den beiden Enden startet und sich immer wieder kreuzt, 
dabei bin ich auf ein Problem gestoßen, was ich leider nicht lösen kann. 
Im Anhang habe ich den Quellcode von dem Knight Rider hinzugefügt. Ich 
habe ihn leicht verändert, dabei ist folgendes rausgekommen:
1
while(1) {               
2

3
    for(i=0;i<7;i++) {  
4
        x = x << 1;
5
        y = y >> 1;
6
        LATA = x;
7
        LATA = y;
8
        delay();
9
        }
10

11
    for(i=7;i<0;i--) {  
12
        x = x >> 1;
13
        y = y << 1;
14
        LATA = x;
15
        LATA = y;
16
        delay();
17
        }
18
    }

Dabei sind x = 0x01 und y = 0x80, bevor das Programm in die erste 
Schleife reinkommt. Ich kann es leider nicht hinkriegen, 2 LEDs 
gleichzeitig leuchten zu lassen und es gibt anscheinend ein 
Überlauffehler, jedoch kann ich den Grund nicht finden. Kann mir jmd 
weiterhelfen? Danke

MfG Konstantin
Angehängte Dateien:
OP #3132392
Lesenswert?
• ▲
▼
Danke, Dominic! So hat es prima geklappt, aber es bleibt ein 
überlauffehler(nehme ich an), das Program läuft nur 1 mal hin und her. 
Ich habe es mit einem schlechten Schlechten Programmierstil gelöst:
1
while(1) {
2
    int x = 0x01,y = 0x80,i;
3
    LATA = x | y;
4
    delay();
5

6
    for(i=0;i<7;i++) {  
7
        x = x << 1;
8
        y = y >> 1;
9
        LATA = x | y;
10
        delay();
11
    }
12

13
    for(i=7;i<0;i--) {  
14
        x = x >> 1;
15
        y = y << 1;
16
        LATA = x | y;
17
         delay();
18
    }
19
}

Der Idee nach, sollten die Bits immer weiter verschoben werden. Also x: 
0x01, 0x02, 0x04 etc. und y 0x80, 0x40, 0x20 etc... Am Ende soll doch 
x=0x80 sein und y=0x01, jedoch läuft das Programm nur 1 mal hin und 
zurück. Weiß jmd, woran es liegen könnte?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.