It would be very nice to have in MikroPascal and MikroBasic possibility to change optimization level like in mikroC.
More than that, to have possibility to apply optimization level over procedures and functions, like org directive :
Code: Select all
procedure test_my_data(var aaa : byte); Optimization_level(0);
Till then (to stop optimizer), I found one work around , apply volatile directive over local variables from function and procedures . Example P16 MCU, without volatile directive , this procedure don't work :
Code: Select all
var Outputs : array[8] of array[2] of byte;
procedure Ouput_My_data(i : byte);
var addr,dat : byte; volatile; // don't touch "volatile" word !!!!!!
begin
addr := Outputs[i][0];
dat := Outputs[i][1];
FSR := addr;
INDF := INDF xor dat; // Toggle PORT.pin
end;