[Bascom] Elegantere Lösung gesucht

Gast #2185602
Lesenswert?
• ▲
▼
Hallo Jungs, wie kann ich sowas "eleganter" lösen ?

Auszug aus meinem funktionierenden RGB Fader

Select Case Adc0
Case 0 To 60 :                                              '1
R = 0
G = 0
B = 255
Case 61 To 120 :                                            '2
R = 125
G = 0
B = 125
Case 121 To 180 :                                           '3
R = 255
G = 0
B = 0
Case 181 To 240 :                                           '4
R = 125
G = 125
B = 0
Case 241 To 300 :                                           '5
R = 0
G = 255
B = 0
Case 301 To 361 :                                           '6
R = 0
G = 125
B = 125
Case 362 To 420:                                            '7
R = 0
G = 0
B = 255
Case 421 To 480 :                                           '8
R = 125
G = 0
B = 125
Case 481 To 540 :                                           '9
R = 255
G = 0
B = 0
Case 541 To 620:                                            '10
R = 125
G = 125
B = 0
Case 621 To 680:                                            '11
R = 0
G = 255
B = 0
Case 681 To 740:                                            '12
R = 0
G = 0
B = 255
Case 741 To 820:                                            '13
R = 125
G = 0
B = 125
Case 821 To 940:                                            '14
R = 255
G = 0
B = 0
Case 941 To 1000:                                           '15
R = 125
G = 125
B = 0
Case 1001 To 1023:                                          '16
R = 0
G = 255
B = 0
End Select
Return
#2185658
Lesenswert?
• ▲
▼
@  Thomas Kiss (thomaskiss)

>Falk..smile...ist doch nur andere Schreibweise oder ?

Bitte? Vier Zeilen gegen eine Seite?

>Ich dachte an eine Tabelle, 2 Dimensional Array geht in Bascom nicht..

Das SIND drei Tabellen, eine für R, eine für G, eine für B. Muss man 
natürlich noch hinschreiben.

MFG
Falk
#2186146
Lesenswert?
• ▲
▼
Thomas Kiss schrieb:
> Hallo Jungs, wie kann ich sowas "eleganter" lösen ?
>
> Auszug aus meinem funktionierenden RGB Fader

Eigentlich hast du mit deinem Code auch keinen Fader, sondern eher einen 
"Stepper".

Wenn du die Übergänge weicher haben möchtest, solltest du dir für jeden 
Farbkanal die "Kurven" aufzeichnen und dann diese Werte direkt aus den 
ADC0-Werten berechnen. Das sollten dann pro Kanal nur zwei bis drei 
Zeilen Code sein ... (Stichworte: 16Bit-Addition, Bitschieben nach 
rechts (Division durch 2 hoch n))

Dann solltest du aber auch die Abstände gleich machen: Deine 
"60"-Schrittweite ist ja nur zuerst vorhanden, bei größeren Werten 
weichst du davon ab...

Gruß,
Thomas

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.