Guten Abend liebes Forum, Ich arbeite zur Zeit mit einem PIC24E und als Programmierer der PICkit 3. Mein Problem ist, dass ich mit dem Programmierer/Debugger einfach nicht debuggen kann. Ich kann zwar wohl über MPLAB Zeile für Zeile durch gehen, aber ich kann in MPLAB weder Register noch kann ich meine Variablen auslesen.. Auch bleibt das Programm beim Debuggen bei einfachen while Schleifen hängen wo lediglich Flags überprüft werden, hängen. Heißt ich muss das Debug "Halten und reseten." (Zbsp : while(SPIxSTATbits.SPIRBF==0); ) Wenn ich beim debuggen mit der Maus über eine Variable / Register gehe steht da immer dass keine Info verfügbar ist. Bei den SPI Buffer zeigt es immer nur 0x0000 an, obwohl die SPI funktioniert. Zum Debuggen klicke ich in MPLAB auf "Debug Main Project". MPLAB X IDE 4.15. Normal ist das nicht, was kann ich tun? Im Pickit3 Datenblatt habe ich auch nichts konkretes dazu finden können.. Vielen Dank, Wünsche einen schönen Feiertag, Dayly
Breakpoints vor dem compilieren gesetzt?! Register/Variablen in den Fenstern, Variables und Watches anzeigen und ändern. Das Anzeigen von Variablen etc. im Editor-Fenster, funktioniert nicht mit HW Tools wie PicKit, sondern nur im Simulator. Dayly schrieb: > Zbsp : while(SPIxSTATbits.SPIRBF==0 Wartet auf externes Ereignis. Kann über Stimulus simuliert werden. Zu finden in "Simulator".
:
Bearbeitet durch User
Dayly schrieb: > Auch bleibt das Programm beim Debuggen bei einfachen while Schleifen > hängen Da setze ich gerne ein Nop() in die Schleife rein, auf das man dann einen Breakpoint setzen kann. Oder ich gehe mit "Goto Cursor" hinter die Schleife. Teo D. schrieb: > Breakpoints vor dem compilieren gesetzt?! Ist egal, sind Hardware Breakponts. Kann man immer setzten und löschen, wenn die CPU angehalten ist. Teo D. schrieb: > Das Anzeigen von Variablen etc. im Editor-Fenster, funktioniert nicht > mit HW Tools wie PicKit, sondern nur im Simulator. Doch, solange die Variable im Scope des Debuggers ist. Wenn die CPU angehalten ist, den Cursor z.B. über eine lokale Variable und etwas warten. Dann liest der Debugger die Variable aus und zeigt sie als Tooltip an. MfG Klaus
Teo D. schrieb: > Register/Variablen in den Fenstern, Variables und Watches anzeigen und > ändern. Da wird aber nichts angezeigt. Und wenn mal eine Variable in dem Fenster unten angezeigt wird, dann ohne Inhalt.. Klaus schrieb: > Da setze ich gerne ein Nop() in die Schleife rein, auf das man dann > einen Breakpoint setzen kann. Oder ich gehe mit "Goto Cursor" hinter die > Schleife. Muss ich mal ausprobieren, Vielen dank für den Tipp! > Doch, solange die Variable im Scope des Debuggers ist. Wenn die CPU > angehalten ist, den Cursor z.B. über eine lokale Variable und etwas > warten. Dann liest der Debugger die Variable aus und zeigt sie als > Tooltip an. > > MfG Klaus Genau! Nach ein bisschen warten erscheint dann auch ein kleines Fensterchen über der Maus mit der Variable drin, nur steht halt dann dass keine Information dazu verfügbar ist. Darum frage ich hier, ob eventuell noch was anderes eingestellt werden muss, wovon ich noch nichts weiß? Denn im Moment nützt mir das Debuggen so überhaupt nichts :/ mFG
Mache Sachen kann man nicht im Single Step Mode debuggen. Das betrifft meistens Hardwaremodule. Im Single Step wird z.B. das Flag while(SPIxSTATbits.SPIRBF==0) vermutlich nie 1. Da muss man dann den Breakpoint auf die Zeile danach setzen...
Dayly schrieb: > Genau! Nach ein bisschen warten erscheint dann auch ein kleines > Fensterchen über der Maus mit der Variable drin, nur steht halt dann > dass keine Information dazu verfügbar ist. Schon mal überprüft, was für eine Variable das ist? Lokal, Global, SFR? Ist sie gerade im Scope der CPU oder wird sie noch erzeugt oder ist schon vernichtet? Wenn ich manchen Code so sehe, werden in jedem Block neue lokale Variable erzeugt, die sind nach der nächsten geschweiften Klammer wieder weg. Ich benutze das ständig, weil ich häufig zu faul bin, extra einen Watch einzurichten. Große Strukturen und lange Strings sind ein bischen doof zu lesen. Wenn man das besser haben will, braucht man doch einen Watch. Da sieht man auch komplexe Variable bis in jede Verästelung. MfG Klaus
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.