PIC2WS2812 | Steuerung von WS2812-LEDs mit 8-Bit PIC Microcontroller | |||||||||||||||||||||||||||
GrundlagenPIC LösungSoftware-Module:Defines |
Demo- und Test-RoutinenDiese Programmteile dienen zu Test- und Demonstrationszwecken. Der Code kann auch als Beispiel oder Grundlage für eigene Entwicklungen verwendet werden. In "demo.asm" sind verschiedene Anwendungen enthalten, die über eine seriellen Schnittstelle ausgewählt werden können. Ist keine solche Schnittstelle angeschlossen, dann sollte beim Reset der UART-Rx Pin am PIC (Pin 2) auf Low-Pegel gezogen werden, damit das Beispiel "Regenbogen" gestartet wird.Kommunikation PC --> PICWenn der PC noch über einen entsprechenden Hardware COM-Port verfügt, kann dieser verwendet werden. Jedoch muss der Spannungspegel von RS232-Pegel (+/-12V) auf PIC-verträgliche 0..5V reduziert werden!Alternativ kann man auch einen USB-zu-Seriell-Adapter verwenden (als "virtuellen COM-Port"). Auch hier muss man ggf. den Pegel auf 0..5V wandeln. Als Single-Chip USB->serial Lösung gibt es z.B. den FT232 von FTDI. An dessen Tx-Ausgang kann man natürlich den PIC direkt anschließen, da der Chip nur 0..5V ausgibt. Ich verwende hier einen RX2SIM Adapter (RC WARE) im "USB2SYS"-Modus. Auch hier kann der Rx-Eingang direkt angeschlossen werden. Zum Senden von Daten an den PIC braucht man noch ein geeignetes Terminal-Programm auf dem PC, wo man Daten in hexadezimaler Form eingeben kann, die dann an den PIC gesendet werden. Ich verwende hier das Programm "HTerm". Bitte das Terminalprogramm so einstellen, daß es es nur die eingegebenen Daten an den COM-Port sendet, also nicht etwa "CR-LF" oder ähnliches sendet beim Drücken der ENTER-Taste! Und natürlich nicht vergessen, die Eingabe auf "hexadezimal" einzustellen! Protokoll Nach dem Reset bzw. Einschalten der Versorgungsspannung erwartet der PIC zunächst ein Byte zur automatischen Einstellung der Baudrate. Daher muss als erstes Byte unbedingt ein Byte mit dem Wert "55" gesendet werden! Das zweite Byte dient zur Auswahl des gewünschten Test/Demo-Programms:
Bei den Demos 02 und höher können über kurze, jeweils 2 Byte lange "Kommandos" die Parameter geändert werden, während das Programm läuft. Das erste Byte wählt den Parameter aus, der eingestellt werden soll. Dabei definiert das higher Nibble (Bits 4..7) die Parameter-Auswahl, das lower-Nibble (Bits 0..3, "x" in der Tabelle) gibt i.Allg. die Ebene an, für die der Befehl gilt. Also, z.B. "21" ist der Befehlscode für "Modus" für die zweite Ebene (Zählung beginnt bei 0!). Das zweite Byte des Kommandos enthält den neuen Datenwert.
Weiter geht's mit "Defines". |
|||||||||||||||||||||||||||
Kontakt |