Difference between revisions of "U23 2008/Gruppe2"
(→Gruppe 2) |
(→Gruppe 2) |
||
Line 71: | Line 71: | ||
− | + | === Bezeichnungen der LEDs (siehe Datenblatt) === | |
− | LED1 => PC4 | + | LED1 => PC4<br/> |
− | LED2 => PD3 | + | LED2 => PD3<br/> |
− | LED3 => PD6 | + | LED3 => PD6<br/> |
− | LED4 => PD7 | + | LED4 => PD7<br/> |
=== Funktionen der Globale Variablen === | === Funktionen der Globale Variablen === | ||
− | 1. uint8_t mode | + | 1. uint8_t mode<br/> |
− | + | ->0 = links...rechts<br/> | |
− | + | ->1 = rechts...links<br/> | |
+ | ->2 = default => alle LEDs an bzw. 1<br/> | ||
− | 2. uint8_t* sequence / | + | 2. uint8_t* sequence<br/> |
− | + | ->Sequenz nach Schema uint8_t*[] = {0, 3, 4, 1, 3, 1, 2, 0};<br/> | |
+ | ->Nach 4 LED-Moves fängt die Sequenz an der Stelle, wo sie zuletzt war wieder mit LED1 an.<br/> | ||
− | 3. uint16_t delay | + | 3. uint16_t delay<br/> |
− | </ | + | ->Delay der Sequenz in MS<br/> |
Revision as of 21:22, 21 August 2008
Contents
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:
-...(Hier eure Namen eintragen)
-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; static void led_control(uint8_t mode, uint8_t* sequence, uint8_t size, uint16_t delay) { switch (mode) { case 0: //rechtsshift break; case 1: //linksshift break; default: for(uint8_t = 0; i<size; i++) { ledset(sequence[i]); mydelay(delay); } } } //Uebergabe ist die gewuenschte LED Konfiguration, die gesetzt werden soll //Die Konfiguration wird als Binaerzahl uebergeben 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); } } 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; //Blinkschleife while(1) { ledset(bla); mydelay(500); bla++; } }
Bezeichnungen der LEDs (siehe Datenblatt)
LED1 => PC4
LED2 => PD3
LED3 => PD6
LED4 => PD7
Funktionen der Globale Variablen
1. uint8_t mode
->0 = links...rechts
->1 = rechts...links
->2 = default => alle LEDs an bzw. 1
2. 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.
3. uint16_t delay
->Delay der Sequenz in MS