Hallo Klebwax,
ertsmal Danke für deine Info:
ich habe deinen Code ausprobiert.
Ich habe beide Variablen als "unsigned char" definiert. GLOBAL
ohne volatile klaut er den gesamten Code, völlig okay, weil er ihn ja nicht braucht
Er ruft schon bei der ersten Zeile ein Unterprogramm (Multiplier) auf.
33 Zyklen
so macht er aber besseren Code ohne Multiplikation: 15 ZyklenCode:volatile unsigned char t,cnt; void main(void) { t = cnt + cnt; // hier ruft er wieder eine Multiplikation auf. cnt = cnt + t; }
Ich hoffe, das hängt nicht mit der Lizenz zusammen, da ich ja nur die freie Version vom XC8 benutze...Code:t = cnt; t = t + cnt; cnt = t + cnt;![]()
Lesezeichen