Du musst die Fuse-Bit so setzen, dass er das Quarz anspricht. Definier noch F_CPU.
Hier mal nen Programm von mir, dass ungefähr das selbe macht.
Hab mal irgendwo gelesen, dass man die delay funktion nur bis 1000 benutzen sollte.Code:/* Testschaltung Version: 0.1 Datum: 07.01.2009 Autor: Finn 'Kani' Schürmann Target: AtMega 8515 Lizenz: Keine */ #include <avr/io.h> #include <util/delay.h> #define F_CPU 16000000UL //16MHZ int main(void) { DDRA = 0xFF; //PORTA auf Ausgang stellen PORTA = 0xFF; //Sicher gehen das zum Start alle Bits "aus" sind. DDRB = 0x00; //PORTB als Eingang zur Vorbeugung von Kurzschlüssen DDRC = 0x00; //PORTC als Eingang zur Vorbeugung von Kurzschlüssen DDRD = 0x00; //PORTD als Eingang zur Vorbeugung von Kurzschlüssen while( 1 ) { PORTA |= (1 << PA1); // Bit PA1 wird gesetzt PORTA &= ~(1 << PA0); // Bit PA0 wird gelöscht _delay_ms(1000); PORTA |= (1 << PA0); // Bit PA0 wird gesetzt PORTA &= ~(1 << PA1); // Bit PA1 wird gelöscht _delay_ms(1000); } }







Zitieren

Lesezeichen