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!
Habe ich bereits gesehen. Aber das hilft mir nicht so wirklich weiter. Zudem kann ich klein Assambler.
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 :)
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
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.
Daniel S. schrieb: > SourceBoost IDE Es steht doch im Text, daß Compiler XC8 zu verwenden ist. https://www.microchip.com/mplab/compilers/8 Und braucht bestimmt auch https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide Gruss
Leider funktioniert es ach nicht mit dem MPLAB bzw XC Compiler. Außerdem ist das garnicht für den PIC12F629 sondern für den PIC12F1840. Sprich, es funktioniert nicht.
Das Ganze ist halt doch um einiges komplexer als LEGO-Steine zusammen zu stecken! Da wirst du wohl o. übel, um einiges mehr an Eigenleistung (Lernen) rein stecken müssen. Hmmm... ARDUINO soll (?) so ähnlich sein wie LEGO spielen!? Falls du mit den PICs (und anderen "echten" µCs) weiter arbeiten willst, lies dir das mal durch: https://www.sprut.de/electronic/pic/index.htm
Tut mir leid, aber ich habe noch nie mit einem PIC gearbeitet bzw auch noch nie mit der IDE. Und wenn ich alles wüsste würde ich ja wohl kaum hier Fragen, Oder!?
:
Bearbeitet durch User
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.