Difference between revisions of "U23 2007/MateCrew"
< U23 2007
(→LED-Dimmer) |
(→LED-Dimmer) |
||
Line 3: | Line 3: | ||
* Die Main mit einer Endlosschleife für ewiges hell und dunkel Dimmen durch Aufruf von den andern Beiden Funktionen | * Die Main mit einer Endlosschleife für ewiges hell und dunkel Dimmen durch Aufruf von den andern Beiden Funktionen | ||
* Die Funktion my_wait(uint32_t time), welche einfach wartet | * Die Funktion my_wait(uint32_t time), welche einfach wartet | ||
− | * Die Funktion | + | * Die Funktion dim(uint8_t ratio), welche für den schnellen Ein-/Ausschaltvorgang der LEDs zuständig ist |
Die Main: | Die Main: | ||
Line 25: | Line 25: | ||
// dadurch verändert sich auch der zeitliche Abstand zwischen dem Ein- und Ausschalten | // dadurch verändert sich auch der zeitliche Abstand zwischen dem Ein- und Ausschalten | ||
// wodurch die LED wiederum heller oder dunkler erscheint | // wodurch die LED wiederum heller oder dunkler erscheint | ||
− | + | dim(i/0xf); | |
} | } | ||
} | } | ||
Line 44: | Line 44: | ||
Die bla: | Die bla: | ||
− | void | + | void dim(uint8_t ratio){ |
uint32_t i=0; | uint32_t i=0; | ||
Revision as of 19:10, 4 June 2007
LED-Dimmer
Für unseren Dimmer für LEDs benutzen wir insgesamt 3 Funktionen:
- Die Main mit einer Endlosschleife für ewiges hell und dunkel Dimmen durch Aufruf von den andern Beiden Funktionen
- Die Funktion my_wait(uint32_t time), welche einfach wartet
- Die Funktion dim(uint8_t ratio), welche für den schnellen Ein-/Ausschaltvorgang der LEDs zuständig ist
Die Main:
int main(){ DDRA=0xff; // LED ausschalten PORTA=0; uint16_t i=0; PORTA|=0x02; //Die Endlosschleife for(;;){ for(i=0;i<0xfff;i++){ // ein bisschen warten my_wait(1); // ein- und ausschalten // je größer i wird desto größer wird auch der Quotient der an bla übergeben wird // dadurch verändert sich auch der zeitliche Abstand zwischen dem Ein- und Ausschalten // wodurch die LED wiederum heller oder dunkler erscheint dim(i/0xf); } } PORTA|=0x03; return 0; }
Die Wait:
void my_wait(uint32_t time) { uint32_t i=0; for(i;i<(time);i++) //vordefinierte Funktion welche einen Leerlauf in Dauer von n Milisekunden auslöst _delay_ms(1); }
Die bla:
void dim(uint8_t ratio){ uint32_t i=0; // LED anschalten PORTA|=0x01; for(i;i<ratio;i++){} // LED ausschalten PORTA&=~0x01; for(i=ratio;i<255;i++){} }
Project
Team
- Scout
- F3lix
- Toby