X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;ds=sidebyside;f=common%2Fprint.c;h=ca94e1e5d6a7ffb9649648ef367b2ab2c5fa21c3;hb=75a59e4d12a13efc03cacd85b394fcf1204aad76;hp=dd73ff59ddbcffa81e0addab9613eea345f00f71;hpb=ad24858e4fec8bb9af9d89ebf42cda3fffcfdff5;p=max%2Ftmk_keyboard.git diff --git a/common/print.c b/common/print.c index dd73ff59..ca94e1e5 100644 --- a/common/print.c +++ b/common/print.c @@ -1,4 +1,4 @@ -/* Copyright 2012 Jun Wako */ +/* Copyright 2012,2013 Jun Wako */ /* Very basic print functions, intended to be used with usb_debug_only.c * http://www.pjrc.com/teensy/ * Copyright (c) 2008 PJRC.COM, LLC @@ -22,125 +22,27 @@ * THE SOFTWARE. */ -#include -#include -#include +#include #include "print.h" -#define sendchar(c) do { if (print_enable && print_sendchar_func) (print_sendchar_func)(c); } while (0) -int8_t (*print_sendchar_func)(uint8_t) = NULL; -bool print_enable = false; +#ifndef NO_PRINT -/* print string stored in data memory(SRAM) - * print_P("hello world"); - * This consumes precious SRAM memory space for string. - */ -void print_S(const char *s) -{ - uint8_t c; - while (1) { - c = *s++; - if (!c) break; - if (c == '\n') sendchar('\r'); - sendchar(c); - } -} +#if defined(__AVR__) -/* print string stored in program memory(FLASH) - * print_P(PSTR("hello world"); - * This consumes relatively abundant FLASH memory area not SRAM. - */ -void print_P(const char *s) -{ - uint8_t c; - while (1) { - c = pgm_read_byte(s++); - if (!c) break; - if (c == '\n') sendchar('\r'); - sendchar(c); - } -} +#define sendchar(c) xputc(c) -static inline -void print_hex4(uint8_t data) -{ - sendchar(data + ((data < 10) ? '0' : 'A' - 10)); -} -void print_hex8(uint8_t data) +void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { - print_hex4(data>>4); - print_hex4(data&0x0F); + xdev_out(sendchar_func); } -void print_hex16(uint16_t data) -{ - print_hex8(data>>8); - print_hex8(data); -} +#elif defined(__arm__) -void print_hex32(uint32_t data) -{ - print_hex16(data>>16); - print_hex16(data); -} +// TODO +//void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { } -void print_dec8(uint8_t data) -{ - if (data/100) sendchar('0' + (data/100)); - if (data/100 || data%100/10) sendchar('0' + (data%100/10)); - sendchar('0' + (data%10)); -} +#endif -void print_dec16(uint16_t data) -{ - // TODO -} - -void print_dec32(uint32_t data) -{ - // TODO -} - -void print_bin(uint8_t data) -{ - for (int i = 7; i >= 0; i--) { - sendchar((data & (1<>8); - print_bin8(data); -} - -void print_bin32(uint32_t data) -{ - print_bin8(data>>24); - print_bin8(data>>16); - print_bin8(data>>8); - print_bin8(data); -} - -void print_bin_reverse8(uint8_t data) -{ - for (int i = 0; i < 8; i++) { - sendchar((data & (1<>8); -} - -void print_bin_reverse32(uint32_t data) -{ - print_bin_reverse8(data); - print_bin_reverse8(data>>8); - print_bin_reverse8(data>>16); - print_bin_reverse8(data>>24); -} +#endif