Difference between revisions of "U23 2008/Gruppe3"
< U23 2008
(→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 &= ~( | + | PORTC &= ~_BV(PC4); |
− | PORTD &= ~( | + | PORTD &= ~_BV(PD3); |
− | PORTD &= ~( | + | PORTD &= ~_BV(PD6); |
− | PORTD &= ~( | + | PORTD &= ~_BV(PD7); |
− | + | //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 |
− | + | uint8_t delay_time = 200; //pause zwischen den ausgaben | |
− | uint8_t ledconf[ | + | uint8_t ledconf[4] = { //array mit led zuständen |
+ | 0b00001000, | ||
+ | 0b00000100, | ||
+ | 0b00000010, | ||
0b00000001, | 0b00000001, | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}; | }; | ||
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