- //buffer[i] = (binArea16[i] >> 8) | (binArea16[i] << 8);
- uint16_t val16 = binArea16[i];
- buffer[i] = ((( val16 << 8 ) & 0xff00 ) | (( val16 >> 8 ) & 0x00ff ) );
+ //uint16_t val16 = binArea16[i];
+ //buffer[i] = ((( val16 << 8 ) & 0xff00 ) | (( val16 >> 8 ) & 0x00ff ) );
+ // save CPU time :
+ // 1) Save 1 affectation and 2 AND operations
+ // buffer[i] = (binArea16[i] >> 8) | (binArea16[i] << 8);
+ // 2) Replace * operations by + operations using pointers
+ *pbuffer = *binArea16 >> 8 | *binArea16 >> 8;
+ pbuffer++;
+ binArea16++;