Gast
#1048019
Mein Atmega644 wird mit folgendem Code betrieben und hängt an einem 20Mhz quarz, trotzdem blinkt die LED nicht... Lösungsvorschläge? #define F_CPU 20000000 #include <avr/io.h> #include <util/delay.h> #include <stdint.h> //Prototypen void sleep_ms(uint16_t ms); //LED Defines //Hier müssen die richtigen Angaben hin #define LED_DDR DDRD //DDRA, DDR6B... #define LED_PORT PORTD //PORTA, PORTB... #define LED_PORTPIN PD6 //PA0, PA1..., PB0, PB1..., ... int main(void){ /*Den Pin wo die LED angeschlossen ist als Ausgang setzen */ LED_DDR |= (1<<LED_PORTPIN); //Die LED die ganze Zeit an und aus schalten while(1){ LED_PORT |= (1<<LED_PORTPIN); //Den Portpin auf high setzen sleep_ms(1000); //1sek warten LED_PORT &= ~(1<<LED_PORTPIN); //Den Portpin auf low setzen sleep_ms(1000); //1sek warten } } /* Diese Funktion lässt den Controller "ms" Millisekunden warten. Die while-Schleife wird so oft durchlaufen, wie der Funktion übergeben wurde. Bei jedem Duchlauf wir noch 1ms gewartet. */ void sleep_ms(uint16_t ms){ while(ms){ ms--; _delay_ms(1); } }