Danke für den Tipp, ich bin nur am rumprobieren und testen, ist nicht das direkte Ziel ne Segmentanzeige zu betreiben![]()
Wie sich was verhält und so.
Des ist mein aktueller Code, sicherlich einiges so wie es nicht sein sollte, aber es funzt, die Zahlen laufen durch von 0 bis 9:
Code://---------------------------------------------------------------------- // Titel : C Grundgerüst für das myAVR-Board //---------------------------------------------------------------------- // Funktion : Skorpion-Roboter "Intelligentes Bein" // Schaltung : ... //---------------------------------------------------------------------- // Prozessor : ... // Takt : 3.6864 MHz // Sprache : C // Datum : 10.10.2008 // Version : 0.1 // Autor : copious //---------------------------------------------------------------------- #define F_CPU 3686400 // Taktferquenz des myAVR-Boards // #define zahl PORTB // Port #define eins (PORTD = 0b10000100) & (PORTB = 0b00000010) // 1 #define zwei (PORTD = 0b11111000) & (PORTB = 0b00000010) // 2 #define drei (PORTD = 0b11101100) & (PORTB = 0b00000010) // 3 #define vier (PORTD = 0b11000100) & (PORTB = 0b00000011) // 4 #define fuenf (PORTD = 0b01101100) & (PORTB = 0b00000011) // 5 #define sechs (PORTD = 0b01111100) & (PORTB = 0b00000011) // 6 #define sieben (PORTD = 0b10001100) & (PORTB = 0b00000010) // 7 #define acht (PORTD = 0b11111100) & (PORTB = 0b00000011) // 8 #define neun (PORTD = 0b11101100) & (PORTB = 0b00000011) // 9 #define null (PORTD = 0b10111100) & (PORTB = 0b00000011) // 0 #define off (PORTD = 0b00000000) & (PORTB = 0b00000000) // aus #include <avr\io.h> // AVR Register und Konstantendefinitionen #include <util\delay.h> // Bibliothek mit Warteroutinen //---------------------------------------------------------------------- main (void) // Hauptprogramm, startet bei Power ON und Reset { DDRD = 0b11111100; // Pin 2 - 7 (Ausgang) DDRB = 0b00111111; // Pin 0 - 5 (Ausgang) DDRC = 0b00000000; // Pin 0 - 5 (Ausgang) PORTC = 0b00000011; unsigned char i; // Variable für Datenausgabe i=1; // Bit 0 = 1, 0b00000001 do { if (eins) // Wenn Bit durchgelaufen i; _delay_ms(10000); // kurz warten if (zwei) i; _delay_ms(10000); // kurz warten if (drei) i; _delay_ms(10000); // kurz warten if (vier) i; _delay_ms(10000); // kurz warten if (fuenf) i; _delay_ms(10000); // kurz warten if (sechs) i; _delay_ms(10000); // kurz warten if (sieben) i; _delay_ms(10000); // kurz warten if (acht) i; _delay_ms(10000); // kurz warten if (neun) i; _delay_ms(10000); // kurz warten if (null) i; _delay_ms(10000); // kurz warten } while (true); // Schleifenende Mainloop } //----------------------------------------------------------------------







Zitieren

Lesezeichen