Difference between revisions of "U23 2008/Gruppe2"
< U23 2008
(New page: = Gruppe 2 = Gruppenchat: u23group2@conference.koeln.ccc.de Also einfach einen Jabber Account bei jabber.ccc.de einrichten und schon gehts los. Wer zum Beispiel einen Gmail-Account hat,...) |
(→Sourcecode vom ersten Projektabend:) |
||
Line 25: | Line 25: | ||
===Sourcecode vom ersten Projektabend: === | ===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++; | ||
+ | } | ||
+ | } |
Revision as of 08:22, 19 August 2008
Gruppe 2
Gruppenchat:
u23group2@conference.koeln.ccc.de
Also einfach einen Jabber Account bei 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)
-...(Hier eure Namen eintragen)
-...(Hier eure Namen eintragen)
-...(Hier eure Namen eintragen)
-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++; } }