/***************************************************************************** ****************************************************************************** ****************************************************************************** *****************************************************************************/ /* IMPORT ---------------------- */ // #include #include #include /* KONSTANTEN ------------------ */ #define sei() __asm__ __volatile__ ("sei" ::) #define cli() __asm__ __volatile__ ("cli" ::) /* FUNKTIONSDEKLARATION -------- */ // /* Global variables ------------ */ volatile uint8_t speed = 80; volatile uint8_t temp = 1; volatile uint16_t counter = 0; volatile uint16_t count = 0; volatile uint8_t all = 0b00111110; volatile uint8_t middle = 0b00001000; volatile uint8_t topmiddle = 0b00010010; volatile uint8_t topmiddle2 = 0b00001010; volatile uint8_t second = 0b00000100; volatile uint8_t top3 = 0b00001110; volatile uint8_t bot3= 0b00111000; volatile uint8_t tmb=0b00101010; volatile uint8_t ss = 0b00010100; volatile uint8_t tb = 0b00100010; volatile uint8_t m3 = 0b00011100; /* Initialisierungen ----------- */ // void initINT (void) { //PORTB init DDRB = 0b00111111; DDRC = 0b00111110; } /* Hauptprogramm --------------- */ // int main (void) { // Initialize the I/O ports initINT(); // Enable interrupt sei(); // Main loop while(1) { for(;count < speed; count++) { PoB5(all); PoB4(middle); PoB3(middle); PoB2(all); delay(); } count = 0; for(;count < speed; count++) { PoB4(all); PoB3(middle); PoB2(middle); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(all); PoB3(all); PoB2(middle); PoB1(middle); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(topmiddle); PoB4(all); PoB2(all); PoB1(middle); PoB0(middle); } count = 0; for(;count < speed; count++) { PoB5(topmiddle); PoB4(topmiddle); PoB3(all); PoB1(all); PoB0(middle); } count = 0; for(;count < speed; count++) { PoB5(all); PoB4(topmiddle); PoB3(topmiddle); PoB2(all); PoB0(all); } count = 0; for(;count < speed; count++) { PoB4(all); PoB3(topmiddle); PoB2(topmiddle); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(all); PoB3(all); PoB2(topmiddle); PoB1(topmiddle); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(topmiddle2); PoB4(all); PoB2(all); PoB1(topmiddle); PoB0(topmiddle); } count = 0; for(;count < speed; count++) { PoB5(topmiddle2); PoB4(topmiddle2); PoB3(all); PoB1(all); PoB0(topmiddle); } count = 0; for(;count < speed; count++) { PoB5(second); PoB4(topmiddle2); PoB3(topmiddle2); PoB2(all); PoB0(all); } count = 0; for(;count < speed; count++) { PoB4(second); PoB3(topmiddle2); PoB2(topmiddle2); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(all); PoB3(second); PoB2(topmiddle2); PoB1(topmiddle2); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(topmiddle2); PoB4(all); PoB2(second); PoB1(topmiddle2); PoB0(topmiddle2); } count = 0; for(;count < speed; count++) { PoB5(topmiddle2); PoB4(topmiddle2); PoB3(all); PoB1(second); PoB0(topmiddle2); } count = 0; for(;count < speed; count++) { PoB5(second); PoB4(topmiddle2); PoB3(topmiddle2); PoB2(all); PoB0(second); } count = 0; for(;count < speed; count++) { PoB4(second); PoB3(topmiddle2); PoB2(topmiddle2); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(top3); PoB3(second); PoB2(topmiddle2); PoB1(topmiddle2); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(bot3); PoB4(top3); PoB2(second); PoB1(topmiddle2); PoB0(topmiddle2); } count = 0; for(;count < speed; count++) { PoB5(bot3); PoB4(bot3); PoB3(top3); PoB1(second); PoB0(topmiddle2); } count = 0; for(;count < speed; count++) { PoB5(top3); PoB4(bot3); PoB3(bot3); PoB2(top3); PoB0(second); } count = 0; for(;count < speed; count++) { PoB4(top3); PoB3(bot3); PoB2(bot3); PoB1(top3); delay(); } count = 0; for(;count < speed; count++) { PoB3(top3); PoB2(bot3); PoB1(bot3); PoB0(top3); delay(); } count = 0; for(;count < speed; count++) { PoB5(all); PoB2(top3); PoB1(bot3); PoB0(bot3); delay(); } count = 0; for(;count < speed; count++) { PoB5(tmb); PoB4(all); PoB1(top3); PoB0(bot3); delay(); } count = 0; for(;count < speed; count++) { PoB5(tmb); PoB4(tmb); PoB3(all); PoB0(top3); delay(); } count = 0; for(;count < speed; count++) { PoB5(ss); PoB4(tmb); PoB3(tmb); PoB2(all); delay(); } count = 0; for(;count < speed; count++) { PoB4(ss); PoB3(tmb); PoB2(tmb); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(middle); PoB3(ss); PoB2(tmb); PoB1(tmb); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(middle); PoB4(middle); PoB2(ss); PoB1(tmb); PoB0(tmb); } count = 0; for(;count < speed; count++) { PoB5(middle); PoB4(middle); PoB3(middle); PoB1(ss); PoB0(tmb); } count = 0; for(;count < speed; count++) { PoB4(middle); PoB3(middle); PoB2(middle); PoB0(ss); delay(); } count = 0; for(;count < speed; count++) { PoB5(all); PoB3(middle); PoB2(middle); PoB1(middle); delay(); } count = 0; for(;count < speed; count++) { PoB5(tb); PoB4(all); PoB2(middle); PoB1(middle); PoB0(middle); } count = 0; for(;count < speed; count++) { PoB5(tb); PoB4(tb); PoB3(all); PoB1(middle); PoB0(middle); } count = 0; for(;count < speed; count++) { PoB5(m3); PoB4(tb); PoB3(tb); PoB2(all); PoB0(middle); } count = 0; for(;count < speed; count++) { PoB4(m3); PoB3(tb); PoB2(tb); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(all); PoB3(m3); PoB2(tb); PoB1(tb); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(topmiddle); PoB4(all); PoB2(m3); PoB1(tb); PoB0(tb); } count = 0; for(;count < speed; count++) { PoB5(topmiddle); PoB4(topmiddle); PoB3(all); PoB1(m3); PoB0(tb); } count = 0; for(;count < speed; count++) { PoB5(all); PoB4(topmiddle); PoB3(topmiddle); PoB2(all); PoB0(m3); } count = 0; for(;count < speed; count++) { PoB4(all); PoB3(topmiddle); PoB2(topmiddle); PoB1(all); delay(); } count = 0; for(;count < speed; count++) { PoB5(top3); PoB3(all); PoB2(topmiddle); PoB1(topmiddle); PoB0(all); } count = 0; for(;count < speed; count++) { PoB5(bot3); PoB4(top3); PoB2(all); PoB1(topmiddle); PoB0(topmiddle); } count = 0; for(;count < speed; count++) { PoB5(bot3); PoB4(bot3); PoB3(top3); PoB1(all); PoB0(topmiddle); } count = 0; for(;count < speed; count++) { PoB5(top3); PoB4(bot3); PoB3(bot3); PoB2(top3); PoB0(all); } count = 0; for(;count < speed; count++) { PoB4(top3); PoB3(bot3); PoB2(bot3); PoB1(top3); delay(); } count = 0; for(;count < speed; count++) { PoB3(top3); PoB2(bot3); PoB1(bot3); PoB0(top3); delay(); } count = 0; for(;count < speed; count++) { PoB2(top3); PoB1(bot3); PoB0(bot3); delay(); delay(); } count = 0; for(;count < speed; count++) { PoB1(top3); PoB0(bot3); delay(); delay(); delay(); } count = 0; for(;count < speed; count++) { PoB0(top3); delay(); delay(); delay(); delay(); } count = 0; for(;count < speed; count++) { clr(); } count = 0; } } void PoB5(uint8_t row) { PORTB= (1<