Mit PIC12F629 WS2812 NeoPixel ansteuern

OP #6567382
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.