#include #include #include /* H: der Farbton als Farbwinkel H auf dem Farbkreis (z. B. 0° = Rot, 120° = Grün, 240° = Blau) S: die Sättigung S in Prozent (z. B. 0% = keine Farbe, 50% = ungesättigte Farbe, 100% = gesättigte, reine Farbe) V: der Grauwert V als Prozentwert angegeben (z. B. 0% = keine Helligkeit, 100% = volle Helligkeit) Skalierung der HSV Werte: H: 0-255, 0=rot, 42=gelb, 85=grün, 128=türkis, 171=blau, 214=violett S: 0-255, 0=weißtöne, 255=volle Farben V: 0-255, 0=aus, 255=maximale Helligkeit */ #define Ledport PORTB // RGB Led Port #define DDR_Ledport DDRB #define DDR_Inputport DDRC #define R_PIN 0 // R Ausgang #define G_PIN 1 // G #define B_PIN 2 // B #define INVERT 0 // Ausgang Low aktiv ? #define Time 1 // Statusbit für Farbwechsel // Prototypen void hsv_to_rgb (unsigned char h, unsigned char s, unsigned char v); // Globale Variabeln (Timer ISR) volatile unsigned char Red, Green, Blue; // PWM Register volatile unsigned char Flags; //------------------------------------------------------------------------------- //Hauptprogramm //------------------------------------------------------------------------------- int main(void) { unsigned char H,S,V; DDR_Ledport=255; H=0; S=255; V=255; // HSV Startwerte: rot, volle Helligkeit hsv_to_rgb(H,S,V); // HSV to RGB TCCR0=1; TIMSK = (1<