hi, i've got a problem when using log10(...) or log(...) from math.h . e.g. log10(10) doesn't return 1 but something like 3.1... e+015. does anyone have an idea what could be the reason for this? thx j.w.
Well, I've no idea what's going on now. I created a new project, pasted the code into it and it now works fine in the simulator. An odd thing though, I have optimisation level 11 selected and in my case y doesn't seem to be optimised out: .cod: ----- FUNCTION main (BEGIN) ----- FILE: 'junk.c' 27: void main(void) 28: { 29: float x,y; 30: 31: Setup(); 000C48 9132 ACALL Setup 32: 33: x=log10(10); 000C4A 7F00 MOV R7,#00H 000C4C 7E00 MOV R6,#00H 000C4E 7D20 MOV R5,#020H 000C50 7C41 MOV R4,#041H 000C52 5173 ACALL _log10 000C54 8F25 MOV x+03H,R7 000C56 8E24 MOV x+02H,R6 000C58 8D23 MOV x+01H,R5 000C5A 8C22 MOV x,R4 34: printf("%f",x); 000C5C 7BFF MOV R3,#0FFH 000C5E 7A0C MOV R2,#HIGH 01000C2FH 000C60 792F MOV R1,#LOW 01000C2FH 000C62 8F30 MOV ?_printf?BYTE+06H,R7 000C64 8E2F MOV ?_printf?BYTE+05H,R6 000C66 8D2E MOV ?_printf?BYTE+04H,R5 000C68 8C2D MOV ?_printf?BYTE+03H,R4 000C6A 120636 LCALL _printf 35: y=x; 000C6D 852529 MOV y+03H,x+03H 000C70 852428 MOV y+02H,x+02H 000C73 852327 MOV y+01H,x+01H 000C76 852226 MOV y,x 36: printf("%f",x); 000C79 7BFF MOV R3,#0FFH 000C7B 7A0C MOV R2,#HIGH 01000C2FH 000C7D 792F MOV R1,#LOW 01000C2FH 000C7F 852530 MOV ?_printf?BYTE+06H,x+03H 000C82 85242F MOV ?_printf?BYTE+05H,x+02H 000C85 85232E MOV ?_printf?BYTE+04H,x+01H 000C88 85222D MOV ?_printf?BYTE+03H,x 000C8B 020636 LJMP _printf ----- FUNCTION main (END) ------- Stefan