diff options
Diffstat (limited to 'common/print.h')
| -rw-r--r-- | common/print.h | 71 |
1 files changed, 42 insertions, 29 deletions
diff --git a/common/print.h b/common/print.h index 80858b3bc..930e84be9 100644 --- a/common/print.h +++ b/common/print.h | |||
| @@ -28,6 +28,8 @@ | |||
| 28 | #include <stdint.h> | 28 | #include <stdint.h> |
| 29 | #include <stdbool.h> | 29 | #include <stdbool.h> |
| 30 | #include <avr/pgmspace.h> | 30 | #include <avr/pgmspace.h> |
| 31 | #include "xprintf.h" | ||
| 32 | #include "util.h" | ||
| 31 | 33 | ||
| 32 | 34 | ||
| 33 | // this macro allows you to write print("some text") and | 35 | // this macro allows you to write print("some text") and |
| @@ -49,17 +51,17 @@ | |||
| 49 | #define pbin_reverse16(data) print_bin_reverse16(data) | 51 | #define pbin_reverse16(data) print_bin_reverse16(data) |
| 50 | 52 | ||
| 51 | /* print value utility */ | 53 | /* print value utility */ |
| 52 | #define print_val_dec(v) do { print_P(PSTR(#v ": ")); print_dec(v); print_P(PSTR("\n")); } while (0) | 54 | #define print_val_dec(v) xprintf(#v ": %u\n", v) |
| 53 | #define print_val_decs(v) do { print_P(PSTR(#v ": ")); print_decs(v); print_P(PSTR("\n")); } while (0) | 55 | #define print_val_decs(v) xprintf(#v ": %d\n", v) |
| 54 | #define print_val_hex8(v) do { print_P(PSTR(#v ": ")); print_hex8(v); print_P(PSTR("\n")); } while (0) | 56 | #define print_val_hex8(v) xprintf(#v ": %X\n", v) |
| 55 | #define print_val_hex16(v) do { print_P(PSTR(#v ": ")); print_hex16(v); print_P(PSTR("\n")); } while (0) | 57 | #define print_val_hex16(v) xprintf(#v ": %02X\n", v) |
| 56 | #define print_val_hex32(v) do { print_P(PSTR(#v ": ")); print_hex32(v); print_P(PSTR("\n")); } while (0) | 58 | #define print_val_hex32(v) xprintf(#v ": %04lX\n", v) |
| 57 | #define print_val_bin8(v) do { print_P(PSTR(#v ": ")); print_bin8(v); print_P(PSTR("\n")); } while (0) | 59 | #define print_val_bin8(v) xprintf(#v ": %08b\n", v) |
| 58 | #define print_val_bin16(v) do { print_P(PSTR(#v ": ")); print_bin16(v); print_P(PSTR("\n")); } while (0) | 60 | #define print_val_bin16(v) xprintf(#v ": %016b\n", v) |
| 59 | #define print_val_bin32(v) do { print_P(PSTR(#v ": ")); print_bin32(v); print_P(PSTR("\n")); } while (0) | 61 | #define print_val_bin32(v) xprintf(#v ": %032lb\n", v) |
| 60 | #define print_val_bin_reverse8(v) do { print_P(PSTR(#v ": ")); print_bin_reverse8(v); print_P(PSTR("\n")); } while (0) | 62 | #define print_val_bin_reverse8(v) xprintf(#v ": %08b\n", bitrev(v)) |
| 61 | #define print_val_bin_reverse16(v) do { print_P(PSTR(#v ": ")); print_bin_reverse16(v); print_P(PSTR("\n")); } while (0) | 63 | #define print_val_bin_reverse16(v) xprintf(#v ": %016b\n", bitrev16(v)) |
| 62 | #define print_val_bin_reverse32(v) do { print_P(PSTR(#v ": ")); print_bin_reverse32(v); print_P(PSTR("\n")); } while (0) | 64 | #define print_val_bin_reverse32(v) xprintf(#v ": %032lb\n", bitrev32(v)) |
| 63 | 65 | ||
| 64 | 66 | ||
| 65 | 67 | ||
| @@ -68,34 +70,46 @@ | |||
| 68 | #ifdef __cplusplus | 70 | #ifdef __cplusplus |
| 69 | extern "C" { | 71 | extern "C" { |
| 70 | #endif | 72 | #endif |
| 73 | |||
| 71 | /* function pointer of sendchar to be used by print utility */ | 74 | /* function pointer of sendchar to be used by print utility */ |
| 72 | void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t)); | 75 | void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t)); |
| 73 | 76 | ||
| 74 | /* print string stored in data memory(SRAM) */ | 77 | /* print string stored in data memory(SRAM) |
| 78 | * print_S("hello world"); | ||
| 79 | * This consumes precious SRAM memory space for string. | ||
| 80 | */ | ||
| 75 | void print_S(const char *s); | 81 | void print_S(const char *s); |
| 76 | /* print string stored in program memory(FLASH) */ | ||
| 77 | void print_P(const char *s); | ||
| 78 | 82 | ||
| 79 | void print_CRLF(void); | 83 | void print_lf(void); |
| 84 | void print_crlf(void); | ||
| 85 | |||
| 86 | |||
| 87 | /* print string stored in program memory(FLASH) | ||
| 88 | * print_P(PSTR("hello world"); | ||
| 89 | * This consumes relatively abundant FLASH memory area not SRAM. | ||
| 90 | */ | ||
| 91 | #define print_P(s) xputs(s) | ||
| 80 | 92 | ||
| 81 | /* decimal */ | 93 | /* decimal */ |
| 82 | void print_dec(uint16_t data); | 94 | #define print_dec(i) xprintf("%u", i) |
| 83 | void print_decs(int16_t data); | 95 | #define print_decs(i) xprintf("%d", i) |
| 84 | 96 | ||
| 85 | /* hex */ | 97 | /* hex */ |
| 86 | void print_hex4(uint8_t data); | 98 | #define print_hex4(i) xprintf("%X", i) |
| 87 | void print_hex8(uint8_t data); | 99 | #define print_hex8(i) xprintf("%02X", i) |
| 88 | void print_hex16(uint16_t data); | 100 | #define print_hex16(i) xprintf("%04X", i) |
| 89 | void print_hex32(uint32_t data); | 101 | #define print_hex32(i) xprintf("%08lX", i) |
| 90 | 102 | ||
| 91 | /* binary */ | 103 | /* binary */ |
| 92 | void print_bin4(uint8_t data); | 104 | #define print_bin4(i) xprintf("%04b", i) |
| 93 | void print_bin8(uint8_t data); | 105 | #define print_bin8(i) xprintf("%08b", i) |
| 94 | void print_bin16(uint16_t data); | 106 | #define print_bin16(i) xprintf("%016b", i) |
| 95 | void print_bin32(uint32_t data); | 107 | #define print_bin32(i) xprintf("%032lb", i) |
| 96 | void print_bin_reverse8(uint8_t data); | 108 | |
| 97 | void print_bin_reverse16(uint16_t data); | 109 | #define print_bin_reverse8(i) xprintf("%08b", bitrev(i)) |
| 98 | void print_bin_reverse32(uint32_t data); | 110 | #define print_bin_reverse16(i) xprintf("%016b", bitrev16(i)) |
| 111 | #define print_bin_reverse32(i) xprintf("%032lb", bitrev32(i)) | ||
| 112 | |||
| 99 | #ifdef __cplusplus | 113 | #ifdef __cplusplus |
| 100 | } | 114 | } |
| 101 | #endif | 115 | #endif |
| @@ -105,7 +119,6 @@ void print_bin_reverse32(uint32_t data); | |||
| 105 | #define print_set_sendchar(func) | 119 | #define print_set_sendchar(func) |
| 106 | #define print_S(s) | 120 | #define print_S(s) |
| 107 | #define print_P(s) | 121 | #define print_P(s) |
| 108 | #define print_CRLF() | ||
| 109 | #define print_dec(data) | 122 | #define print_dec(data) |
| 110 | #define print_decs(data) | 123 | #define print_decs(data) |
| 111 | #define print_hex4(data) | 124 | #define print_hex4(data) |
