Nachdem es noch dauern wird, bis in der 'freeversion' von bascom die MCS-Rainbow.lib dabei ist und es viele Programme mit der 'alten' Rainbow.lib gibt, hier mal diese zum runterladen. Ich hoffe, das geht copyrightmäßig in Ordnung, oder @Galahat?
Die Datei in den lib-Ordner von bascom verschieben und das 1.21 und .txt entfernen, damit es einfach 'rainbow.lib' heißt
Ich hatte mir auch mal was zusammengestellt (im Jahr 2015)
Alles anzeigen
Ab Zeile 15 kann man die nicht benötigten Funktionen auskommentieren, spart Speicherplatz.
EDIT von Galahat: Anhang entfernt. siehe Downloadlink im Lexikon
Die Datei in den lib-Ordner von bascom verschieben und das 1.21 und .txt entfernen, damit es einfach 'rainbow.lib' heißt
Ich hatte mir auch mal was zusammengestellt (im Jahr 2015)
BASCOM-Quellcode
- 'Um die Library in einem BASCOM-Programm verwenden zu können, sind die folgenden Zeilen in den Programmcode zu integrieren:
- $lib "Rainbow.lib"
- $external Ws2812b
- Const Rainbow0_len = 44
- Const Rainbow0_port = Portd
- Const Rainbow0_pin = Pd0
- 'Damit ist die Basisimplementierung abgeschlossen. Zu dieser Basis gehören drei Routinen:
- Declare Sub Select_rainbow(byval Channel As Byte)
- Declare Sub Setcolor(byval Lednr As Word , Color() As Byte)
- Declare Sub Send()
- 'Alle weiteren zur Verfügung stehenden Routinen sind zu implementieren:
- Declare Sub Fill(color() As Byte) : $external Use_fill ' ein Aufruf von Send() ist nicht nötig
- Declare Sub Fill_colors(color() As Byte) : $external Use_fill
- Declare Sub Fill_stripe(color() As Byte) : $external Use_fill_stripe ' ein Aufruf von Send() ist nicht nötig
- Declare Sub Clear_stripe() : $external Use_clear_stripe ' ein Aufruf von Send() ist nicht nötig
- Declare Sub Clear_colors() : $external Use_clear_colors
- Declare Sub Swap_color(byval Lednr1 As Word , Byval Lednr2 As Word) : $external Use_swap_color
- Declare Sub Rotate_left(byval Left_index As Word , Byval Width As Word) : $external Use_rotate_left
- Declare Sub Rotate_right(byval Left_index As Word , Byval Width As Word) : $external Use_rotate_right
- Declare Sub Shift_right(byval Left_index As Word , Byval Width As Word) : $external Use_shift_right
- Declare Sub Shift_left(byval Left_index As Word , Byval Width As Word) : $external Use_shift_left
- Declare Sub And_color(byval Lednr As Word , Color() As Byte) : $external Use_and_color
- Declare Sub Or_color(byval Lednr As Word , Color() As Byte) : $external Use_or_color
- Declare Sub Add_color(byval Lednr As Word , Color() As Byte) : $external Use_add_color
- Declare Sub Sub_color(byval Lednr As Word , Color() As Byte) : $external Use_sub_color
- Declare Sub Change_pin(byval Port As Byte , Byval Pin As Byte) : $external Use_change_pin
- Declare Sub Settablecolor(byval Lednr As Word , Byval Index As Byte) : $external Use_settablecolor
- Declare Function Getcolor(byval Lednr As Word)as Byte : $external Use_getcolor
- Declare Function Lookup_color(byval Index As Byte) As Byte : $external Use_lookup_color
EDIT von Galahat: Anhang entfernt. siehe Downloadlink im Lexikon
Raum für Notizen
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------