[elektro] Munka (C kérdés)

Info info at kiralyelektronika.hu
Sat Sep 17 18:16:27 CEST 2011


> 0x08004FEA 8912      LDRH     r2,[r2,#0x08]   ;// félszó beolvasás

Ha LDRSH lenne akkor lenne sign extend, így nem helyes.
Viszont ha int-nek írod akkor meg nem biztos, hogy fogja növelni 32767
fölé. Tehát a count++ -helyett uint16_t(count)++ kellene.

szal ezt:
 int16_t count;
 if (~count)  uint16_t(count)++;

már így kéne fordítaia:
    LDRSH     r2,[xxx]
    MVNS      r2,r2
    BEQ       xxxxxx



>>Nem pont fordítva, hogy csak egyszer végez csak növelést, amikor count==0?>
de, bocsi :)




More information about the Elektro mailing list