Difference between revisions of "U23 2008/Gruppe3"

From C4 Wiki
Jump to: navigation, search
(Code:)
(Code:)
Line 20: Line 20:
 
  #include <util/delay.h>
 
  #include <util/delay.h>
 
   
 
   
  void set_leds(uint8_t leds)  
+
  void set_leds(uint8_t leds)
 
  {
 
  {
 
  //alle leds ausschalten
 
  //alle leds ausschalten
  PORTC &= ~(1 << PC4 );
+
  PORTC &= ~_BV(PC4);
  PORTD &= ~(1 << PD3 );
+
  PORTD &= ~_BV(PD3);
  PORTD &= ~(1 << PD6 );
+
  PORTD &= ~_BV(PD6);
  PORTD &= ~(1 << PD7 );
+
  PORTD &= ~_BV(PD7);
 
   
 
   
//gewählte leds einschalten
+
  //gewählte leds einschalten
  PORTC |= ((leds & 1) << PC4 );
+
  PORTC |= ((leds & 1) << PC4 ); //bits aus leds an die richtige stelle schieben
  PORTD |= ((leds & 2) << (PD3 - 1) );
+
  PORTD |= ((leds & 2) << (PD3 - 1) ); //minus eins, weils in led an der stelle 1 steht (von rechts)
  PORTD |= ((leds & 4) << (PD6 - 2) );
+
  PORTD |= ((leds & 4) << (PD6 - 2) ); //...
 
  PORTD |= ((leds & 8) << (PD7 - 3) );
 
  PORTD |= ((leds & 8) << (PD7 - 3) );
 
  }
 
  }
Line 38: Line 38:
 
  int main(void)
 
  int main(void)
 
  {
 
  {
  uint8_t i = 0;
+
  uint8_t i = 0; //index der ledconf, die ausgegeben werden soll
  uint16_t delay_time = 200;
+
  uint8_t delay_time = 200; //pause zwischen den ausgaben
  uint8_t ledconf[8] = {
+
  uint8_t ledconf[4] = { //array mit led zuständen
 +
0b00001000,
 +
0b00000100,
 +
0b00000010,
 
  0b00000001,
 
  0b00000001,
0b00000011,
 
0b00000111,
 
0b00001111,
 
0b00001110,
 
0b00001100,
 
0b00001000,
 
0b00000000
 
 
  };
 
  };
 
   
 
   
Line 57: Line 53:
 
  while(1)
 
  while(1)
 
  {
 
  {
  if (i >= sizeof(ledconf))
+
  if (i >= sizeof(ledconf)) //index darf maximal so graß sein, wie die anzahl der ledconf elemente
 
  i = 0;
 
  i = 0;
 
  set_leds(ledconf[i]);
 
  set_leds(ledconf[i]);
Line 65: Line 61:
 
  }
 
  }
 
  }
 
  }
 +
  
 
  try this: einfach ein leerzeichen vor die Codezeile packen und es wird dementsprechend interpretiert. -obstfliege
 
  try this: einfach ein leerzeichen vor die Codezeile packen und es wird dementsprechend interpretiert. -obstfliege
  
 
[[Category:U23 2008]]
 
[[Category:U23 2008]]

Revision as of 17:57, 25 August 2008

Gruppe3

Wir saßen an der linken Ecke des projizierten Bildes ;)


Mitglieder:


-mkr
-PyroGX
-whitenexx
-The Kenny (Macbook, Brille)
-Gordin

Code:

Es gab wohl mehrere Untergruppen, wir sollten alle unseren Code hier reinstellen.

Ich bin irgendwie zu blöd dafür, den Code richtig im Wiki einzufügen. - The-Kenny

Code von mkr:

#include <avr/io.h>
#include <util/delay.h>

void set_leds(uint8_t leds)
	{
	//alle leds ausschalten
	PORTC &= ~_BV(PC4);
	PORTD &= ~_BV(PD3);
	PORTD &= ~_BV(PD6);
	PORTD &= ~_BV(PD7);

 	//gewählte leds einschalten
	PORTC |= ((leds & 1) << PC4 );		//bits aus leds an die richtige stelle schieben
	PORTD |= ((leds & 2) << (PD3 - 1) );	//minus eins, weils in led an der stelle 1 steht (von rechts)
	PORTD |= ((leds & 4) << (PD6 - 2) );	//...
	PORTD |= ((leds & 8) << (PD7 - 3) );
	}


int main(void)
	{ 	
	uint8_t i = 0;			//index der ledconf, die ausgegeben werden soll
	uint8_t delay_time = 200;	//pause zwischen den ausgaben
	uint8_t ledconf[4] = {		//array mit led zuständen
		0b00001000,
		0b00000100,
		0b00000010,
		0b00000001,
		};

	// LED Output-Pins konfigurieren
	DDRC |= _BV(PC4);
	DDRD |= ( _BV(PD3) | _BV(PD6) | _BV(PD7) );

	while(1)
		{
		if (i >= sizeof(ledconf))		//index darf maximal so graß sein, wie die anzahl der ledconf elemente
			i = 0;
		set_leds(ledconf[i]);
		i++;

		_delay_ms(delay_time);
		}
	}


try this: einfach ein leerzeichen vor die Codezeile packen und es wird dementsprechend interpretiert. -obstfliege