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
Code:
volatile unsigned char t,cnt;
void main(void)
{
t = cnt + cnt; // hier ruft er wieder eine Multiplikation auf.
cnt = cnt + t;
}
so macht er aber besseren Code ohne Multiplikation: 15 Zyklen
Code:
t = cnt;
t = t + cnt;
cnt = t + cnt;
Ich hoffe, das hängt nicht mit der Lizenz zusammen, da ich ja nur die freie Version vom XC8 benutze...
Lesezeichen