U23 2008/Gruppe2

From C4 Wiki
< U23 2008
Revision as of 21:47, 25 August 2008 by 84.186.238.128 (talk) (Bezeichnungen der LEDs (siehe Datenblatt))
Jump to: navigation, search

Gruppe 2

Gruppenchat:

u23group2@conference.koeln.ccc.de

Also einfach einen Jabber Account auf koeln.ccc.de oder jabber.ccc.de einrichten und schon gehts los. Wer zum Beispiel einen Gmail-Account hat, hat selbst schon einen Jabber Account und kann damit loslegen.

Mitglieder:


-kellertür (Mathias)
-UltraX8 (Arnaud) (Tom Tailor Polo-Shirt, blonde Haare)
-T06T (Thorsten mit H) (braune haare, braune augen, schwarze kleidung/humor)
-Thomas
-Lind (Bene) (ca. 190 groß, kurze Haare, schwarzes HardRock Cafe Shirt)

Sourcecode vom ersten Projektabend:

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

uint8_t globalconfig;

//Uebergabe ist die gewünschte LED Konfiguration, die gesetzt werden soll
//Die Konfiguration wird als Binärzahl übergeben wobei nur die letzten vier stellen ausgewertet werden
static void ledset(uint8_t config) {
	globalconfig=config;
	PORTC=(config&0x01)<<PC4;
	PORTD=((config&0x02)<<(PD3-1))|((config&0x04)<<(PD6-2))|((config&0x08)<<(PD7-3));
}

//Delay in ms
static void mydelay(uint16_t delay){
	uint16_t i; 
	for (i = 0; i < delay; i++) {
		/* wait 4 * 65536 cycles */
		_delay_loop_2(5000);
	}
} 


static void led_control(uint8_t mode, uint8_t* sequence, uint8_t size, uint16_t delay) {
        while(1) {
		switch (mode) {
			case 0: //rechtsshift
				
				break;
			case 1: //linksshift
				
				break;
			default: {
				for(uint8_t i = 0; i<size; i++) {
					ledset(sequence[i]);
					mydelay(delay);
				}
				break;
			}
		}
	}
}


void main(void) {
	//Port Direction config
	DDRC = _BV(PC4); /* == 1<<7 == 128 */
	DDRD = _BV(PD3)|_BV(PD6)|_BV(PD7); /* == 1<<7 == 128 */

	
	uint8_t bla=0;
	
	//Definition der Blinkfolge
	uint8_t array[]={15,8,3,4};
	
	led_control(12,array ,4,500);
	
}


Bezeichnungen der LEDs (siehe Datenblatt)

LED1 => PC4
LED2 => PD3
LED3 => PD6
LED4 => PD7

Funktionen der Globalen Variablen

uint8_t mode

0 = links...rechts
1 = rechts...links
2 = Sequenz aus Array
3 = default => alle LEDs an bzw. 1

uint8_t* sequence

Sequenz nach Schema uint8_t*[] = {0, 3, 4, 1, 3, 1, 2, 0};
Nach 4 LED-Moves fängt die Sequenz an der Stelle, wo sie zuletzt war wieder mit LED1 an.

uint16_t delay

Delay der Sequenz in MS.