Hallo zusammen! Ich benutze ein STK 600 und ein JTAG ICE mk3 um meinen AT90PWM3B zu debuggen. Die Software wird in den uC geladen und sobald ich den ersten Debuggschritt ausführen möchte, springt er in den Disassembly-Code. Gelber Pfeil steht auf scopeband und sobald ich diese auslöse, springt er an die gezeigte Stelle im Disassembly. Weis zufällig jemand, was hier nicht korrekt läuft? Vielen DANK! Gruss int main(void) { unsigned int resolution = 1024;//10_bit_ADC unsigned int Vref = 5000; // 1/1000V (mV) scopeband = (float)Vref/resolution; init_pwm_value(); init_psc2(); init_ramp_mode(); init_adc(); //init_pwm_out(); while(1) { ADC_average = ADC_average_read(); ADC_Vin = (unsigned int)ADC_average*scopeband; LEM_current = (unsigned int)(((((float)ADC_Vin*5)/(float)Vc_LEM)-2.5)/0.00222); e = target_current - LEM_current; //Sollwert_Istwert_Abgleich PI_regulator(); DAC_PWM_output(); } return 0;
Der Fehler ist, dass ich das Programm nicht "Durch-Debuggen" kann, da er mir gleich in das Disassembly-Fenster springt. Ich weis aber nicht warum er das macht. DANKE!
Kann es sein, dass eine Einstellung falsch ist. Ich möchte im C-Code debuggen. Gruss
was für einen Debug-Step hast du denn gemacht? "Step Over" oder "Step Into". Die Beschreibung hört sich nach letzteren an, versuchs doch mal mit dem anderen. Falls das auch nix hilft, setz halt den Brechpunkt hinter die float(Pfui)-Division und benutze den klicke auf "Run". warum willst du überhaupt mit Float rechnen?
Hallo! Ich habe jetzt mal die float Berechnung in eine reine int Berechnung gewandelt. Mir scheint es jedoch so, als würde sich der Debugger an der Berechnung aufhängen. Aber warum?
der debugger hängt sich nicht auf, du steppst halt in den Funktionsaufruf für eine Float- oder Integer Division rein.
Ich stepp mit F10, dann müsste er aber doch darüber springen. Habe vorher mit eine ice mk II getestet und da ging alles ohne Problem. k.A. was hier los ist. Kann das was mit BSD-Files zu tun haben, die von Atmel zum download bereitgestellt werden? DANKE Gruss
hast du mal dahinter einen breakpoint gesetzt? alternativ drück halt, wenn du ins assembly steppst shift+F11 um aus der Funktion wieder rauszuspringen. BSD Files sagt mir nix
Vlad Tepesch schrieb: > BSD Files sagt mir nix BSDL-files, nein, damit hat es gewiss nichts zu tun. ;-) Btw., Bildformate Screenshots bitte als PNG und nicht als JPEG. Auch das große weiße Rechteck auf der rechten Seite interessiert uns wenig, das hättest du ruhig vorher abschneiden dürfen. Setz' einfach Breakpoints weiter hinten, wenn die Einzelschritte nicht so recht gehen.
Ich hab jetzt eine Fehlermeldung bekommen (siehe Bild). _divsf3 line 998 hat er mir auch im Disassembly oben rechts ständig angezeigt. Neuinstallation vom Studio? Gruss
debugger schrieb: > Ich hab jetzt eine Fehlermeldung bekommen (siehe Bild). > > _divsf3 line 998 hat er mir auch im Disassembly oben rechts ständig > angezeigt. Eine Divisionsroutine aus der libgcc.a. Du bist also mitten in der Division drin. > Neuinstallation vom Studio? Was genau sollte das helfen? Der Sourcecode der libgcc.a wird auch dann noch nicht mit dabei sein (den willst du sicher auch nicht sehen). Setz' doch einen Breakpoint dahinter und mach' dort weiter.
>Setz' doch einen Breakpoint dahinter und mach' dort weiter.
wo dahinter?
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.