Difference between revisions of "U23 2007/MateCrew"

From C4 Wiki
Jump to: navigation, search
(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 bla(uint8_t ratio), welche für den schnellen Ein-/Ausschaltvorgang der LEDs zuständig ist
+
* 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
         bla(i/0xf);
+
         dim(i/0xf);
 
       }
 
       }
 
     }
 
     }
Line 44: Line 44:
  
 
Die bla:
 
Die bla:
   void bla(uint8_t ratio){
+
   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