Hallo Forum... Ich habe hier ein Problem mit einem Register. Ich habe das r21 mit .def Status =r21 definiert. Während des Programmablaufes wird dieses plötzlich zu 255. Bis dahin sind aber schon einige Zyklen vergangen und ich habe definitiv keinen Zugriff auf dieses Register von anderer Seite gehabt. Wie kann ich da den Fehler suchen ? Es handelt sich um den ATTiny2313
Da die Register auch im RAM-Bereich abgebildet werden (ab Adresse 0), kann man sie auch mit den Datentransfer-Befehlen wie LD und ST erreichen. Falls da ein "Zeiger" nicht stimmt, oder der Stack überläuft, kann man sich damit auch ungewollt Register überschreiben, ohne diese explizit anzusprechen. Gruß Ingo
Ich hab den Übeltäter durch zufall gefunden... gibt es da keine andere Möglichkeit als das Programm step by step durch zu orgeln ? Kann man nicht irgendwie Stopmarken setzen, wenn ein Ereignis resp. Registerwechsel stattfindet ? Gibt's sowas wie debug.print in VB im AVR Studio ?
Nö, bedingte Breakpoints sind dem AVR-Studio unbekannt... Da hilft nur ein Einbau einer Abfrage in deinen Quelltext, dort kannst du dann einen Brechpunkt setzen...
Alles in allem schein der Simulationsbetrieb im Studio ja sehr schwach zu sein... Oder kann man das UART bedienen bzw. Daten über's UART ausgeben ? Alternativ kann ich zwar auf mein STK500 brennen aber da kann ich ja offensichtlich nicht den Programmablauf verfolgen. Oder hab ich das nur noch nicht gefunden ? Wie debugt Ihr denn so? Auf den MC schießen und gucken ob sich die letzte Änderung gelohnt hat ? Ich hab nämlich noch ein Problem mit dem SRAM. Ich schreibe da ein Byte vom UART ins SRAM und lese es danach wieder aus um es auf einem Display anzuzeigen. Im Studio absolut top, auf'm Board Schrott.
Eingaben an Ports (auch UART) z.B., kannst du mit einem Inputfile simulieren.
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.