Hallo, Ich habe meinen ATMega gerade in der Schaltung gehabt und via ISP an com1 das erste Mai beschrieben. Hat auch wunderbar funktioniert. Nach dem Beschreiben ist der uC nun aber zu nichts mehr zu bewegen. Das Programm laeuft nicht und ueber ISP wird er nicht mehr gefunden. An den Fuses habe ich nichts veraendert. Im Quellcode steht: #ifndef F_CPU #define F_CPU 1000000UL #endif Fuer die delay Routinen. Kann es sein dass ich mir hiermit den internen Oszillator deaktiviert habe? Was kann ich tun um herauszufinden ob der interne Oszillator noch schwingt? Desweitern habe ich einen Watchdog mit den C Funktionen auf 30ms gesetzt. Kann es sein, dass dieser mir den Aerger einbrockt? Eigentlich nicht, da doch beim Programmieren Reset auf Low gezogen wird. ?!? Ein anderer ATMega wird in dieser Schaltung erkannt so dass man Hardwareprobleme ausschliessen kann. Freue mich auf alle Tipps Gute Nacht Mode
Soo mal von ext 4MHz an XTAL1 angelegt und er lebte wieder. Fusebits waren alle nicht gesetzt. Da scheint wohl was beim Programmieren in die Hose gegangen zu sein. Ich kann den Fehler aber nicht reproduzieren. Kann es an einem zu langen com Kabel liegen? 5Meter....
Hi, Mode, welche Antwort erwartest Du nach Deinen Feststellungen? "ann es an einem zu langen com Kabel liegen? 5Meter...." Kaum. 5m Kabel wo zwischen? PonyProg? STK500? Möglicherweise: Fusebit "CKOPT". Schau im Datenblatt mal auf S. 25, "Table 4. Crystal Oscillator Operating Modes", da geht's um die Wahl der Kondensatoren und die Einstellung des Arbeitspunktes mit Fusebits in Abhängigkeit von der Quarzfrequenz. Ciao Wolfgang Horn
Ich meine irgendwo mal in einem Thread gelesen zu haben dass es Progger gibt bei denen man zuerst die Fuses einlesen muß bevor man schreibt. Vielleicht war genau das das Problem.
Ja das kann gut sein, habe das Teil heute bestimmt schon 50 mal beschrieben und es ist kein mal mehr aufgetreten... :-) Programm ist mittlerweile fertig. und beim debuggen musst ich feststellen das sich der interne 1MHz Osz. absolut nicht fuer UART eignet. 2400baud war das hoechste aller Gefuehle :-(
>2400baud war das hoechste aller Gefuehle
Muss auch so sein, denn nach der Formel:
UBRRL= TAKT/(BAUD*16)-1
sollte das Ergebnis möglichst ganzzahlig sein.
Zu hohe Fehlerabweichungen können die seriellen PC-Schnittstellen nicht
mehr kompensieren.
Aber würdest Du 2 µC mit 1Mhz und "9600Bd" (wären natürlich nicht
9600, sondern ein anderer krummer Wert) untereinander betreiben, das
ginge dann wieder, da beide USATS mit dem gleichen Fehler laufen.
Bernhard
Bernhard: Nicht unbedingt. Der interne Oszillator ist nicht gerade das, was man Temperaturstabil nennen könnte. Wenn man Glück hat klappts, wenn man Pech hat, sucht man sich einen Wolf, wenn man diese Einschränkung nicht bedenkt.
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.