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.
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);
}
}
Hab mal irgendwo gelesen, dass man die delay funktion nur bis 1000 benutzen sollte.
Lesezeichen