Ich tippe, daß das mit den 2 Stunden nichts zu tun hat, sondern mit Zerstörung des Flash-Inhalts durch Brown-Out bzw. durch Oszillationen der Spannung beim An- oder Abschalten.
Hallo,
wenn ich vom AVR etwas über die serielle an den PC schicken will, geht das eigentlich ganz gut. Ist der AVR länger als ca. 2 Std. vom Strom getrennt und schalte ihn dann wieder ein, läuft das Programm perfekt weiter nur sendet er über die serielle dann nur noch wirres Zeug. Programmiere ich Ihn dann frisch, geht es wieder. Hatte jemand von euch auch schonmal dieses Problem.
mfg Kay
PS: ich füge mal noch einen Teil meines Programmes hinzu
Code:'--------------------Chipkonfiguration--------------------------' $regfile = "m16def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 '--------------------Porteinstellungen--------------------------' Config Portb = Input Config Portd = Output '-------------------Displaykonfiguration------------------------' Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8 '-------------------Uhrzeitkonfiguration------------------------' Enable Interrupts Config Date = Dmy , Separator = . Config Clock = Soft Date$ = "01/01/06" Time$ = "00:00:00" Do print "KayIB 1.0" wait 1 Loop
Ich tippe, daß das mit den 2 Stunden nichts zu tun hat, sondern mit Zerstörung des Flash-Inhalts durch Brown-Out bzw. durch Oszillationen der Spannung beim An- oder Abschalten.
Wär ne Möglichkeit.
@BlaueLED:
Haste den Resetpin vernünftig belegt oder die BOD-Fusebits richtig gesetzt?
Hallo,
also reset habe ich über einen Widerstand an VCC. Hab ich bisher immer so gemacht und funktioniert bis jetzt tadellos bei meine anderen Projekten. Die Fuses stehen so:
Bodlevel 2,7V
Boden Disabled
mfg Kay
Na ja,
dann würde ich mal den BODEN enablen....
Der Reset sollte mindestens einen Kondensator auf Masse haben (Verzögerung). Besser noch einen Resetcontroller.
Gruß
Uli
Hallo,
habe jetzt noch einen kondensator 100nF gegen masse hinzugefügt. Das Fusebit Boden habe ich auf enable gestellt und das Level auf 4V. klappt aber immer noch nicht.
mfg Kay
...dann bist Du zumindest sicher, daß es die von mir vermuitete Ursache nicht war...
Mehr Ideen habe ich dazu jetzt nicht.
Gruß
Uli
beim hochfahren des pc die serielle schnittstelle vom AVR entfernen, anschliessend wieder weitermachen.
So blöde und traurig es klingt, aber "Tonne auf, M16 rein, neuen M16 nehmen".
Wenn der neue M16 das auch macht, den alten wieder aus der Tonne holen
Benutzt du den internen EEPROM und da die Zelle 0? Und wenn ja, hat der Inhalt was mit RS232 zu tun?
Hast du einen Bootloader installiert?
Wie sind die Bootloader-Einstellungen deines M16?
Womit wird der M16 getaktet? Intern, externen Quarz? Wenn Quarz, evtl mal den Quarz und die Kerkos tauschen. Evtl schwingt der Quarz nicht richtig an? Nach einem Reset schwingt er ja noch vom ersten Start.
Da evtl mal eine Pause von ein paar Sekunden einlegen, bevor das Hauptprogramm startet. RS232 benötigt ja ein Timing. Bei Abfragen eines Tasters wären unregelmäßige Schwinungen nicht so schlimm.
Wenn das alles nichts hilft, dann Variante A, das mit der Tonne
Lesezeichen