feat: working test
This commit is contained in:
83
prog/serial_print.hpp
Normal file
83
prog/serial_print.hpp
Normal file
@ -0,0 +1,83 @@
|
||||
#pragma once
|
||||
|
||||
template <typename T>
|
||||
inline void serial_print(HardwareSerial* serial, T v){
|
||||
serial->print(v);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline void serial_println(HardwareSerial* serial, T v){
|
||||
serial->println(v);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static inline char hex_conv(T val){
|
||||
return val < 10 ? '0' + val : 'A' + (val-10);
|
||||
}
|
||||
|
||||
static char eol[3] = "\r\n";
|
||||
inline void serial_print_eol(HardwareSerial* serial){
|
||||
serial->write((const uint8_t*)eol, sizeof(eol));
|
||||
}
|
||||
|
||||
inline void serial_print_hex(HardwareSerial* serial, int32_t n){
|
||||
constexpr const int SIZE_BUFF_HEX = 2*4+2;
|
||||
char buff[SIZE_BUFF_HEX];
|
||||
buff[0] = '0';
|
||||
buff[1] = 'x';
|
||||
buff[2] = hex_conv((n & 0xF0000000) >> 7*4 );
|
||||
buff[3] = hex_conv((n & 0x0F000000) >> 6*4 );
|
||||
buff[4] = hex_conv((n & 0x00F00000) >> 5*4 );
|
||||
buff[5] = hex_conv((n & 0x000F0000) >> 4*4 );
|
||||
buff[6] = hex_conv((n & 0x0000F000) >> 3*4 );
|
||||
buff[7] = hex_conv((n & 0x00000F00) >> 2*4 );
|
||||
buff[8] = hex_conv((n & 0x000000F0) >> 1*4 );
|
||||
buff[9] = hex_conv((n & 0x0000000F) );
|
||||
serial->write((const uint8_t*)&buff, SIZE_BUFF_HEX);
|
||||
}
|
||||
inline void serial_print_hex(HardwareSerial* serial, int64_t n){
|
||||
constexpr const int SIZE_BUFF_HEX = 4*4+2;
|
||||
char buff[SIZE_BUFF_HEX];
|
||||
buff[0] = '0';
|
||||
buff[1] = 'x';
|
||||
buff[2] = hex_conv((n & 0xF000000000000000) >> 15*4 );
|
||||
buff[3] = hex_conv((n & 0x0F00000000000000) >> 14*4 );
|
||||
buff[4] = hex_conv((n & 0x00F0000000000000) >> 13*4 );
|
||||
buff[5] = hex_conv((n & 0x000F000000000000) >> 12*4 );
|
||||
buff[6] = hex_conv((n & 0x0000F00000000000) >> 11*4 );
|
||||
buff[7] = hex_conv((n & 0x00000F0000000000) >> 10*4 );
|
||||
buff[8] = hex_conv((n & 0x000000F000000000) >> 9*4 );
|
||||
buff[9] = hex_conv((n & 0x0000000F00000000) >> 8*4 );
|
||||
buff[10] = hex_conv((n & 0x00000000F0000000) >> 7*4 );
|
||||
buff[11] = hex_conv((n & 0x000000000F000000) >> 6*4 );
|
||||
buff[12] = hex_conv((n & 0x0000000000F00000) >> 5*4 );
|
||||
buff[13] = hex_conv((n & 0x00000000000F0000) >> 4*4 );
|
||||
buff[14] = hex_conv((n & 0x000000000000F000) >> 3*4 );
|
||||
buff[15] = hex_conv((n & 0x0000000000000F00) >> 2*4 );
|
||||
buff[16] = hex_conv((n & 0x00000000000000F0) >> 1*4 );
|
||||
buff[17] = hex_conv((n & 0x000000000000000F) );
|
||||
serial->write((const uint8_t*)&buff, SIZE_BUFF_HEX);
|
||||
}
|
||||
|
||||
inline void serial_println_hex(HardwareSerial* serial, int32_t n){
|
||||
serial_print_hex(serial, n);
|
||||
serial_print_eol(serial);
|
||||
}
|
||||
|
||||
inline void serial_print_hex(HardwareSerial* serial, uint32_t number){
|
||||
serial->print(number);
|
||||
}
|
||||
inline void serial_println_hex(HardwareSerial* serial, uint32_t number){
|
||||
serial->println(number);
|
||||
}
|
||||
inline void serial_println_hex(HardwareSerial* serial, int64_t n){
|
||||
serial_print_hex(serial, n);
|
||||
serial_print_eol(serial);
|
||||
}
|
||||
|
||||
inline void serial_print_hex(HardwareSerial* serial, uint64_t number){
|
||||
serial->print(number);
|
||||
}
|
||||
inline void serial_println_hex(HardwareSerial* serial, uint64_t number){
|
||||
serial->println(number);
|
||||
}
|
Reference in New Issue
Block a user