Gast
#283213
hallo leute
ich hatte im laufe der woche schon eine umfrage gestartet wegen eines
vermuteten compilerfehlers. hier nochmal die eckdaten:
avrgcc3.3, pn2, avrstudio4.11 und jtag-ice
compilereinstellungen: richtiger controller, optimierung s
programmiert wird in c.
folgendes detail:
123: dac_set_value(URDM_1,-1.5); // AP für MOSFET UGS=-3V
+00000FC2: E040 LDI R20,0x00 Load immediate
+00000FC3: E050 LDI R21,0x00 Load immediate
+00000FC4: EC60 LDI R22,0xC0 Load immediate
+00000FC5: EB7F LDI R23,0xBF Load immediate
+00000FC6: E081 LDI R24,0x01 Load immediate
123: dac_set_value(URDM_1,-1.5); // AP für MOSFET UGS=-3V
+00000FC7: 940E0000 CALL 0x00000000 Call subroutine
127: dac_set_value(US_1,1.5); // Startpunkte setzen
+00000FC9: E040 LDI R20,0x00 Load immediate
---- No Source
------------------------------------------------------------------------
------------
+00000FCA: E050 LDI R21,0x00 Load immediate
+00000FCB: EC60 LDI R22,0xC0 Load immediate
+00000FCC: E37F LDI R23,0x3F Load immediate
+00000FCD: E080 LDI R24,0x00 Load immediate
+00000FCE: CFF8 RJMP PC-0x0007 Relative jump
hinter diesem asm-code verbergen sich folgende zeilen im pn
dac_set_value(URDM_1,-1.5);
for(;;)
{
dac_set_value(US_1,1.5);
}
effekt1:
der pc wird vom compiler aus der schleife herausgeschickt
in die zeile vor der schleife!
+00000FCE: CFF8 RJMP PC-0x0007 Relative jump
wer hat infos woran das liegen kann?
m. gerlach