Hallo, mal kurz ne frage. Ich habe hier ein Programm das per Interrupt Routine, ausgelöst durch Timer0, LEDs blinken lässt an SFR 0x80 also Port 0. Nun habe ich mir ein Programm geschrieben, welches ebenfalls per Timer 0 an Port 3 4 7 Segment anzeigen Per multiplexing und 7447 betreibt. Das komische ist, es laufen beide Programme gleichzeitig. Das Programm mit den LEDs habe ich vorhin drauf geladen. Kurz danach ein komplett neues mit den 7 Segments. Ich habe den PC mehrfach neu gestartet und in Ride und Keil neue Projekte angelegt. Auch am anderen PC das gleiche Problem. Kann es vielleicht sein, das mit dem neuen Programm die alten Register nicht überschrieben werden und das alte Programm quasi noch mitläuft, weils im Speicher ist? Gibts eine möglich kein ein "NULL" Programm aufzuspielen, welches alle Register auf Werkseinstellung setzt um nicht mehr so ein programm gemansche zu bekommen?!? Gerade bin ich ein wenig verwirrt deswegen ;) Danke.
Die SFRs haben beim Reset bestimmte Werte (z.B. Port2 0xFF), die im DB stehen. Das SRAM, und damit alle Register, sind nach dem Reset unbestimmt, d.h. sie können alles mögliche enthalten. Dafür ist die Initalisierung in Deinem Programm zuständig.
Normalerweise sollte beim Neuflashen der alte Inhalt gelöscht werden. Poste mal Dein Programm. Bei Keil gibt es eine "Startup.a51", wo man einige Sache zur Initialisierung des Speicheres einstellen kann, dürfte aber nicht das Problem lösen. Die RESET-Werte der SFR kann man meines Wissens nicht beeinflussen.
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.