aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2014-06-16 15:38:39 +0900
committertmk <nobody@nowhere>2014-07-30 14:07:43 +0900
commit04fe78ee0a7fe9baed39f021799a3dbb24ebeb36 (patch)
tree047ab27ca15eedfcc5523ac0daf243611501ef5e /common
parent867f115bee190515aa195dc3e58f1c381ea9695b (diff)
downloadqmk_firmware-04fe78ee0a7fe9baed39f021799a3dbb24ebeb36.tar.gz
qmk_firmware-04fe78ee0a7fe9baed39f021799a3dbb24ebeb36.zip
Fix print and timer
Diffstat (limited to 'common')
-rw-r--r--common/avr/timer_avr.h42
-rw-r--r--common/avr/xprintf.S (renamed from common/xprintf.S)0
-rw-r--r--common/avr/xprintf.h (renamed from common/xprintf.h)0
-rw-r--r--common/debug.h4
-rw-r--r--common/debug_config.h9
-rw-r--r--common/mbed/timer.c1
-rw-r--r--common/nodebug.h2
-rw-r--r--common/print.h16
8 files changed, 58 insertions, 16 deletions
diff --git a/common/avr/timer_avr.h b/common/avr/timer_avr.h
new file mode 100644
index 000000000..0e85eb101
--- /dev/null
+++ b/common/avr/timer_avr.h
@@ -0,0 +1,42 @@
1/*
2Copyright 2011 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef TIMER_AVR_H
19#define TIMER_AVR_H 1
20
21#include <stdint.h>
22
23#ifndef TIMER_PRESCALER
24# if F_CPU > 16000000
25# define TIMER_PRESCALER 256
26# elif F_CPU > 2000000
27# define TIMER_PRESCALER 64
28# elif F_CPU > 250000
29# define TIMER_PRESCALER 8
30# else
31# define TIMER_PRESCALER 1
32# endif
33#endif
34#define TIMER_RAW_FREQ (F_CPU/TIMER_PRESCALER)
35#define TIMER_RAW TCNT0
36#define TIMER_RAW_TOP (TIMER_RAW_FREQ/1000)
37
38#if (TIMER_RAW_TOP > 255)
39# error "Timer0 can't count 1ms at this clock freq. Use larger prescaler."
40#endif
41
42#endif
diff --git a/common/xprintf.S b/common/avr/xprintf.S
index 0cec70ce2..0cec70ce2 100644
--- a/common/xprintf.S
+++ b/common/avr/xprintf.S
diff --git a/common/xprintf.h b/common/avr/xprintf.h
index f58bca817..f58bca817 100644
--- a/common/xprintf.h
+++ b/common/avr/xprintf.h
diff --git a/common/debug.h b/common/debug.h
index 399b2d0a7..8ca2569a4 100644
--- a/common/debug.h
+++ b/common/debug.h
@@ -25,13 +25,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#ifndef NO_DEBUG 25#ifndef NO_DEBUG
26 26
27#define dprint(s) do { if (debug_enable) print(s); } while (0) 27#define dprint(s) do { if (debug_enable) print(s); } while (0)
28#define dprintln() do { if (debug_enable) print_crlf(); } while (0) 28#define dprintln(s) do { if (debug_enable) println(s); } while (0)
29#define dprintf(fmt, ...) do { if (debug_enable) xprintf(fmt, ##__VA_ARGS__); } while (0) 29#define dprintf(fmt, ...) do { if (debug_enable) xprintf(fmt, ##__VA_ARGS__); } while (0)
30#define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s)) 30#define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s))
31 31
32/* DO NOT USE these anymore */ 32/* DO NOT USE these anymore */
33#define debug(s) do { if (debug_enable) print(s); } while (0) 33#define debug(s) do { if (debug_enable) print(s); } while (0)
34#define debugln(s) do { if (debug_enable) print_crlf(); } while (0) 34#define debugln(s) do { if (debug_enable) println(s); } while (0)
35#define debug_S(s) do { if (debug_enable) print_S(s); } while (0) 35#define debug_S(s) do { if (debug_enable) print_S(s); } while (0)
36#define debug_P(s) do { if (debug_enable) print_P(s); } while (0) 36#define debug_P(s) do { if (debug_enable) print_P(s); } while (0)
37#define debug_msg(s) do { \ 37#define debug_msg(s) do { \
diff --git a/common/debug_config.h b/common/debug_config.h
index e00fd1033..0e67ee49f 100644
--- a/common/debug_config.h
+++ b/common/debug_config.h
@@ -38,14 +38,15 @@ typedef union {
38} debug_config_t; 38} debug_config_t;
39debug_config_t debug_config; 39debug_config_t debug_config;
40 40
41#ifdef __cplusplus
42}
43#endif
44
45
41/* for backward compatibility */ 46/* for backward compatibility */
42#define debug_enable (debug_config.enable) 47#define debug_enable (debug_config.enable)
43#define debug_matrix (debug_config.matrix) 48#define debug_matrix (debug_config.matrix)
44#define debug_keyboard (debug_config.keyboard) 49#define debug_keyboard (debug_config.keyboard)
45#define debug_mouse (debug_config.mouse) 50#define debug_mouse (debug_config.mouse)
46 51
47#ifdef __cplusplus
48}
49#endif
50
51#endif 52#endif
diff --git a/common/mbed/timer.c b/common/mbed/timer.c
index a64a77239..c357ceb78 100644
--- a/common/mbed/timer.c
+++ b/common/mbed/timer.c
@@ -11,6 +11,7 @@ void SysTick_Handler(void) {
11 11
12void timer_init(void) 12void timer_init(void)
13{ 13{
14 timer_count = 0;
14 SysTick_Config(SystemCoreClock / 1000); /* 1ms tick */ 15 SysTick_Config(SystemCoreClock / 1000); /* 1ms tick */
15} 16}
16 17
diff --git a/common/nodebug.h b/common/nodebug.h
index aec790bbc..8ef123f9f 100644
--- a/common/nodebug.h
+++ b/common/nodebug.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef NODEBUG_H 18#ifndef NODEBUG_H
19#define NODEBUG_H 1 19#define NODEBUG_H 1
20 20
21#include "debug_config.h"
22
23#define dprint(s) 21#define dprint(s)
24#define dprintln(s) 22#define dprintln(s)
25#define dprintf(fmt, ...) 23#define dprintf(fmt, ...)
diff --git a/common/print.h b/common/print.h
index 6a6771f71..4001bcf1b 100644
--- a/common/print.h
+++ b/common/print.h
@@ -35,7 +35,7 @@
35#ifndef NO_PRINT 35#ifndef NO_PRINT
36 36
37 37
38#ifdef __AVR__ 38#if defined(__AVR__)
39 39
40#include "xprintf.h" 40#include "xprintf.h"
41 41
@@ -44,21 +44,21 @@
44#ifndef __cplusplus 44#ifndef __cplusplus
45#define print(s) xputs(PSTR(s)) 45#define print(s) xputs(PSTR(s))
46#endif 46#endif
47#define println(s) xputs(PSTR(s "\n")) 47#define println(s) xputs(PSTR(s "\r\n"))
48 48
49#ifdef __cplusplus 49#ifdef __cplusplus
50extern "C" { 50extern "C"
51#endif 51#endif
52/* function pointer of sendchar to be used by print utility */ 52/* function pointer of sendchar to be used by print utility */
53void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t)); 53void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));
54 54
55#elif __arm__ 55#elif defined(__arm__)
56
57#include "mbed/xprintf.h"
56 58
57#include "mbed.h"
58Serial ser(UART_TX, UART_RX);
59#define xprintf ser.printf
60#define print(s) xprintf(s) 59#define print(s) xprintf(s)
61#define println(s) xprintf(s "\n") 60#define println(s) xprintf(s "\r\n")
61
62/* TODO: to select output destinations: UART/USBSerial */ 62/* TODO: to select output destinations: UART/USBSerial */
63#define print_set_sendchar(func) 63#define print_set_sendchar(func)
64 64