diff --git a/src/avclandrv.c b/src/avclandrv.c index 6b1a1ba..4255f7e 100644 --- a/src/avclandrv.c +++ b/src/avclandrv.c @@ -1007,11 +1007,9 @@ void AVCLAN_printframe(const AVCLAN_frame_t *frame) { RS232_PrintHex4(frame->broadcast); RS232_Print(" 0x"); - RS232_PrintHex4(*(((uint8_t *)&frame->controller_addr) + 1)); - RS232_PrintHex8(*(((uint8_t *)&frame->controller_addr) + 0)); + RS232_PrintHex12(frame->controller_addr); RS232_Print(" 0x"); - RS232_PrintHex4(*(((uint8_t *)&frame->peripheral_addr) + 1)); - RS232_PrintHex8(*(((uint8_t *)&frame->peripheral_addr) + 0)); + RS232_PrintHex12(frame->peripheral_addr); RS232_Print(" 0x"); RS232_PrintHex4(frame->control); diff --git a/src/com232.c b/src/com232.c index 8fcd158..ef5b8dd 100644 --- a/src/com232.c +++ b/src/com232.c @@ -85,6 +85,11 @@ void RS232_PrintHex8(uint8_t Data) { RS232_PrintHex4(Data); } +void RS232_PrintHex12(uint16_t x) { + RS232_PrintHex4(*(((uint8_t *)&x) + 1)); + RS232_PrintHex8(*(((uint8_t *)&x) + 0)); +} + void RS232_PrintDec(uint8_t Data) { if (Data > 99) { RS232_SendByte('*'); diff --git a/src/com232.h b/src/com232.h index ce49195..bd8a59f 100644 --- a/src/com232.h +++ b/src/com232.h @@ -34,6 +34,7 @@ void RS232_SendByte(uint8_t Data); void RS232_Print(const char *pBuf); void RS232_PrintHex4(uint8_t Data); void RS232_PrintHex8(uint8_t Data); +void RS232_PrintHex12(uint16_t x); void RS232_PrintDec(uint8_t Data); void RS232_PrintDec2(uint8_t Data); char *itoa(int i, char b[]);