Tack grabbar...
Mycket bra hjälp här.
Jag kom på att programmet jag kommunicerar med även kan tolka hex värden skrivna i ascii, alltså för 0x3F så skickar man '3' och 'F', och det tyckte jag borde vara både snabbare och mindre resurskrävande att omvandla till ..
Kod: Markera allt
void send (uint16_t value)
{
uint8_t X[4];
const uint8_t patHex [16] =
{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
X[0] = patHex [value & 0x0F];
X[1] = patHex [((value >> 4) & 0x0F)];
X[2] = patHex [((value >> 8) & 0x0F)];
X[3] = patHex [((value >> 12) & 0x0F)];
while(!TXIF);
TXREG = X[3];
while(!TXIF);
TXREG = X[2];
while(!TXIF);
TXREG = X[1];
while(!TXIF);
TXREG = X[0];
}
Detta va vad jag kom fram till då..
Ps: Dessutom så behöver jag bara skicka 4 bytes för ett 16bitars tal istället för 5bytes..