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>
>Ich habe auf meinem board einen Atmega 32 mit einem Atmega 64 ersetzt >und ein identisches Programm raufgespielt, das eine LED blinken lässt. Programm neu kompiliert? M103C Fuse auf 1 gesetzt?
Unter Fuses ist der nicht aufgelistet, wo finde ich ihn und ist es möglich das er unter anderem namen aufgelistet ist?
ATMega103 compatibility mode ausschalten
@ Seba (Gast) >Wo finde ich die option? Bei den AVR Fuses! Genauer im Extended Fuse Byte. http://www.engbedded.com/cgi-bin/fc.cgi?P_PREV=&P=ATmega64
Wo schreibt der Compiler 1000000 bei uint16_t hin?
ATMega103 compatibility mode gibts doch nur beim M128
Es ist ein Atmega 644, der scheint diese Option nicht zu haben ;), andere lösungsvorschläge?
>Es ist ein Atmega 644, der scheint diese Option nicht zu haben ;), >andere lösungsvorschläge? Diese Information hätte evtl. Posts in die falsche Richtung verhindert. Ich mach mich mal vom Acker. Such selber.
Tut mir leid ;) War keine Absicht, habe mich einfach vertippt
schon versucht, neu zu compilieren ? Otto
Gibt dir der Compiler keine Warnigs aus?
>schon versucht, neu zu compilieren ?
Hab ich 18:17 schon gefragt.
ja Holger - Antwort darauf habe ich aber nicht gefunden ....
Neucompiliert habe ich es und warning ist nur das ich den CPU Takt nicht gesetzt hab ;) Ich probiers gleich nochmal mit
Hast Du auch das "#include <iom32v.h>" ausgetauscht ? Otto
Ich danke euch allen, jetzt läufts, tatsächlich lag alles an der CPU tacktung die falsch eingestellt war ;). Danke, Wochenende gerettet ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.