PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : µC beim flashen nicht neustarten?



MartinFunk
18.12.2006, 13:09
hallo,
ich habe eine uhr gebaut, da ich das programm aber immer noch umprorammiere, muss ich die uhr nach dem flashen immer neu stellen.
kann man das irgentwie umgehen?
Hardware:
ATmega16
LCD Display 2*16 LM16A

MfG Martin

Pascal
18.12.2006, 13:48
Die einzige Möglichkeit, die mir dazu einfällt, wäre ein Funkuhrmodul zu verwenden. Dann musst du die Uhrzeit nicht mehr einstellen, stattdessen nur eine gewisse Zeit warten.

Ich hab auch schonmal eine Uhr programmiert, aber habe da nicht immer die richtige Uhrzeit eingestellt. Um zu überprüfen, ob die Uhr richtig geht, reicht es ja aus, wenn man die Differenz von zwei Zeitpunkten betrachtet. Ganz am Ende, also wenn alles funktioniert, stellst du dann die richtige Zeit ein und schaust, ob es immer noch funktioniert.
Das wäre meiner Meinung nach eine geeignete Alternativmöglichkeit.

MartinFunk
18.12.2006, 13:53
Danke für die antwort,
eine funkuhr hab ich mir auchschon überlegt das kommt aber ganz zum schluss wenn ich mal mehr zeit habe.
hat sonst noch jemand eine idee?

MfG Martin

SprinterSB
18.12.2006, 15:09
Du könntest die Daten in eine Section legen, die nicht vom StartUp-Code initialisiert wird und diese Daten dann von Hand initialisieren abhängig vom RESET-Typ (PowerDown, ExternalReset, BrownOut, WatchDog, ...)

Das ist nur dann sinnvoll, wenn du sicherstellen kannst, daß sich durch die Programmänderung die Datenablage nicht ändert!

Wenn die Daten ab Adresse 90 liegen und nach der Änderung ab Adresse 91 weil du irgendwo neue Daten eingeführt hast, wird es nicht mehr funktionieren.

Den Reset-Status siehst du in MCUSR bzw. MSUCSR.

Wie Daten in einen Speicherbereich gelegt werden, der nicht vom Startup-Code gesetzt wird, ist abhängig von deinem Compiler. Bei avr-gcc ist es die Section ".noinit".

m.a.r.v.i.n
18.12.2006, 15:23
Dallas DS1302 mit Batteriepufferung würde mir noch einfallen. Anbindung über I2C.

Wie z.B. in folgender Schaltung realisiert
http://www.acmesystems.it/?id=105

Gruß m.a.r.v.i.n

MartinFunk
18.12.2006, 15:28
hallo,
mir ist gerade einegfallen das man einen alten rambaustein mit den daten füttern könnte.
Weiß jemand wie mann das macht?
MfG Martin

SprinterSB
18.12.2006, 16:39
Nimm doch einfacher den internen Flash wenn es nur in der Entwicklungsphase ist. Die paar Schriebe tun dem nicht weh (jede Minute oder so).