Gast
#1047603
Ich habe auf meinem board einen Atmega 32 mit einem Atmega 64 ersetzt und ein identisches Programm raufgespielt, das eine LED blinken lässt. Die Schaltung ist irdentisch geblieben und wurde nur um einen 20Mhz Quarz erweitert. Das Programm läuft aber seit dem nicht ;) Kann mir jemand ne Erklärung geben? <code> #include <avr/io.h> #include <util/delay.h> #include <stdint.h> //Prototypen void sleep_ms(uint16_t ms); #define LED_DDR DDRD //DDRA, DDRB... #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(1000000); //1sek warten LED_PORT &= ~(1<<LED_PORTPIN); //Den Portpin auf low setzen sleep_ms(1000000); //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); } } </code>