Mit PIC12F629 WS2812 NeoPixel ansteuern

OP #6567382
Lesenswert?
• ▲
▼
Hallo,
ich bin dabei eine kleine schaltung zu bauen mit einem PIC12F629 der 
Neopixel ansteuern soll. Die schaltung hat vier Eingänge und soll 
entsprechend wenn ein eingang HIGH ist, gewisse LEDs einschalten bzw die 
Farbe gewisser LEDs ändern. Nicht die ganze reihe, sondern nur einen 
kleinen Teil.

Die Eingänge habe ich bereits fertig, ich habe nur noch garkeine ahnung 
wie es mit dem ansteuern der NeoPixel aussieht.

Daher meine eigendliche frage: Wie steuere ich die Neopixel genau an? 
Das Datenblatt brachte mir bis dato nicht viel. (Ein Code-Beispiel wäre 
schön)

Danke im vorraus!
Gast #6567459
Lesenswert?
• ▲
▼
Na dann.... OHNE Gewähr und Munition!
1
    INTERRUPT_GlobalInterruptDisable();
2
    for (led_nr = 0; led_nr < LED_ANZAHL; led_nr++) {
3
        for (farbe = 0; farbe < 3; farbe++) {
4
            for (bit_nr = 7; bit_nr >= 0; bit_nr--) {
5
                if (rgb_Ar[led_nr][farbe] & (1 << bit_nr)) {
6
                    // Pin min. LowZeit < 0,1µs (?))
7
                    // Pin max. für 5µs(!) Low (erst ab v4 o. v5 sind es wirklich 50µs)
8
                    WS2812B_Pin_LAT = 1; // 1250ns !!! (900)
9
                    NOP();
10
                    NOP();
11
                    NOP();
12
                    NOP();
13
                    NOP();
14
                    NOP();
15
                    NOP();
16
                    NOP();
17
                    NOP();
18
                    NOP();
19
                    NOP();
20
                    WS2812B_Pin_LAT = 0;
21
                    //                    NOP();
22
                } else {
23
                    WS2812B_Pin_LAT = 1; // ~ 260ns (min200, max 350)
24
                    NOP();
25
                    NOP();
26
                    NOP();
27
                    NOP();
28
                    NOP();
29
                    WS2812B_Pin_LAT = 0;
30
                    //                    NOP();
31
                }
32
            }
33
        }
34
    }
35
    INTERRUPT_GlobalInterruptEnable();

Die Anzahl der NOPs hängt natürlich vom Taktfrequenz ab!
Hier im zB... kA :)
OP #6567490
Lesenswert?
• ▲
▼
Erich schrieb:
> Daniel S. schrieb:
>> Habe ich bereits gesehen.
>
> Nein, wohl doch nicht so ganz.
> Denn unter "Für PIC12, PIC16, PIC18..."
> ist dir der Link "Forenthread" entgangen!
>
> Beitrag "Re: [ASM & C] PIC12/PIC18/PIC24 WS2812 SPI Library"
>
> Da sehe ich reinen C code,
> allerdings für etwas moderneren Controller.
>
> Gruss

ich bekomme beim Kompelieren immer vier Fehlermeldungen:

line 21: Unable to open include file: XC.h
line 22: Unable to open include file: stdio.h
line 23: Unable to open include file: stdlib.h
line 24: Unable to open include file: stdint.h

Ich programmiere übrigends mit der SourceBoost IDE.
Gast #6571219
Lesenswert?
• ▲
▼
Daniel S. schrieb:
> Tut mir leid, aber ich habe noch nie mit einem PIC gearbeitet bzw auch
> noch nie mit der IDE.

ggf. mit einem anderen µC ??? oder noch gar nicht ???
Im letzteren Fall wäre die sprut-Seite ein guter Einstieg.

BTW: der PIC12F629 ist sowas von veraltet (knapp 20 Jahre alt), zudem 
noch ziemlich langsam, zum Einstieg bei sprut ok, aber nix für Dein 
Vorhaben.

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.