ich meinte:
wie ist die Performance dieses C-Codes im Vergleich zu bisherigen C-Codes, um Multiplikation zu vermeiden?
t = cnt;
cnt+=cnt;
cnt+=t;
Zur Performance habe ich nochmal einige Tests durchgeführt:
unsigned char cnt; // 8 Bit ohne Vorzeichen
----------------
cnt = (cnt << 1) + cnt;
17 Zyklen bei XC8 V2.00
102 Zyklen bei XC8 V2.10
cnt*=3;
46 Zyklen bei XC8 V2.00
46 Zyklen bei XC8 V2.10
HaWe-Code:
t = cnt;
cnt+=cnt;
cnt+=t;
16 Zyklen bei XC8 V2.00
12 Zyklen bei XC8 V2.10
Siro's Assemblercode: Compiler Version egal
asm("movf _cnt,W");
asm("addwf _cnt,F");
asm("addwf _cnt,F");
3 Zyklen
Siro
Geändert von Siro (18.08.2020 um 12:44 Uhr)
Lesezeichen