Restore previous BeRTOS demo.
[bertos.git] / app / demo / appconfig.h
1 /**
2  * \file
3  * <!--
4  * This file is part of BeRTOS.
5  *
6  * Bertos is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  * As a special exception, you may use this file as part of a free software
21  * library without restriction.  Specifically, if other files instantiate
22  * templates or use macros or inline functions from this file, or you compile
23  * this file and link it with other files to produce an executable, this
24  * file does not by itself cause the resulting executable to be covered by
25  * the GNU General Public License.  This exception does not however
26  * invalidate any other reasons why the executable file might be covered by
27  * the GNU General Public License.
28  *
29  * Copyright 2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
30  *
31  * -->
32  *
33  * \brief DevLib configuration options
34  *
35  * You should copy this header in your project and rename it to
36  * "config.h" and delete the CONFIG_ macros for the modules
37  * you're not using.
38  *
39  * <h2>Working with multiple applications</h2>
40  *
41  * If your project is made of multiple DevLib-based applications,
42  * create a custom "config.h" file in each application subdirectory
43  * and play with the compiler include path to get the desired result.
44  * You can share common options by creationg a "config_common.h" header
45  * and including it from all your "config.h" copies.
46  *
47  * <h2>Configuration style</h2>
48  *
49  * For improved compile-time checking of configuration options,
50  * the preferred way to use a \c CONFIG_ symbol is keeping it
51  * always defined with a value of either 0 or 1.  This lets
52  * you write tests like this:
53  *
54  * \code
55  *  #if CONFIG_FOO
56  *  void foo(void)
57  *  {
58  *      if (CONFIG_BAR)
59  *          bar();
60  *  }
61  *  #endif // CONFIG_FOO
62  * \endcode
63  *
64  * In most cases, we rely on the optimizer to discard checks
65  * on constant values and performing dead-code elimination.
66  *
67  * \version $Id: appconfig.h 18242 2007-10-08 17:35:23Z marco $
68  * \author Bernardo Innocenti <bernie@develer.com>
69  * \author Stefano Fedrigo <aleph@develer.com>
70  */
71
72 /*#*
73  *#* $Log$
74  *#* Revision 1.5  2006/09/20 19:55:01  marco
75  *#* Added CONFIG_LCD_4BIT.
76  *#*
77  *#* Revision 1.4  2006/09/13 18:29:22  bernie
78  *#* Add a few missing CONFIG_ definitions.
79  *#*
80  *#* Revision 1.3  2006/07/19 12:56:24  bernie
81  *#* Convert to new Doxygen style.
82  *#*
83  *#* Revision 1.2  2006/05/28 12:18:12  bernie
84  *#* Disable menu timeout.
85  *#*
86  *#* Revision 1.1  2006/05/27 22:31:57  bernie
87  *#* Add appconfig.h for demo app.
88  *#*
89  *#* Revision 1.1  2006/05/18 00:40:43  bernie
90  *#* Rename appconfig.h to appconfig_common.h.
91  *#*
92  *#* Revision 1.11  2006/04/11 00:08:53  bernie
93  *#* Add smooth scrolling for menus.
94  *#*
95  *#* Revision 1.10  2006/03/22 09:48:51  bernie
96  *#* Add a few more config options.
97  *#*
98  *#* Revision 1.9  2006/02/24 00:27:35  bernie
99  *#* Enable kernel and fix Doxygen markup.
100  *#*
101  *#* Revision 1.8  2006/02/21 16:06:05  bernie
102  *#* Update copyright info.
103  *#*
104  *#* Revision 1.7  2006/02/17 22:28:19  bernie
105  *#* Add missing UART definitions.
106  *#*
107  *#* Revision 1.6  2006/02/15 09:12:56  bernie
108  *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
109  *#*
110  *#* Revision 1.5  2006/02/10 12:34:33  bernie
111  *#* Add missing config options for gfx and kbd.
112  *#*
113  *#* Revision 1.4  2006/01/23 23:12:27  bernie
114  *#* Enable CONFIG_GFX_VCOORDS.
115  *#*
116  *#* Revision 1.3  2006/01/17 02:30:06  bernie
117  *#* Add new config vars.
118  *#*
119  *#* Revision 1.2  2005/11/27 03:04:57  bernie
120  *#* CONFIG_WATCHDOG: New config option.
121  *#*
122  *#* Revision 1.1  2005/11/04 17:42:12  bernie
123  *#* Move cfg/config.h to appconfig.h.
124  *#*/
125
126 #ifndef APPCONFIG_H
127 #define APPCONFIG_H
128
129 /** Baud-rate for the kdebug console */
130 #define CONFIG_KDEBUG_BAUDRATE  19200
131
132 /**
133  * printf()-style formatter configuration.
134  *
135  * \sa PRINTF_DISABLED
136  * \sa PRINTF_NOMODIFIERS
137  * \sa PRINTF_REDUCED
138  * \sa PRINTF_NOFLOAT
139  * \sa PRINTF_FULL
140  */
141 #define CONFIG_PRINTF PRINTF_FULL
142
143 /**
144  * Multithreading kernel.
145  *
146  * \sa config_kern.h
147  */
148 #define CONFIG_KERNEL 1
149
150 /**
151  * \name Serial driver parameters
152  * \{
153  */
154         /** [bytes] Size of the outbound FIFO buffer for port 0. */
155         #define CONFIG_UART0_TXBUFSIZE  32
156
157         /** [bytes] Size of the inbound FIFO buffer for port 0. */
158         #define CONFIG_UART0_RXBUFSIZE  64
159
160         /** [bytes] Size of the outbound FIFO buffer for port 1. */
161         #define CONFIG_UART1_TXBUFSIZE  32
162
163         /** [bytes] Size of the inbound FIFO buffer for port 1. */
164         #define CONFIG_UART1_RXBUFSIZE  64
165
166         /** [bytes] Size of the outbound FIFO buffer for SPI port (AVR only). */
167         #define CONFIG_SPI_TXBUFSIZE    16
168
169         /** [bytes] Size of the inbound FIFO buffer for SPI port (AVR only). */
170         #define CONFIG_SPI_RXBUFSIZE    32
171
172         /** Default transmit timeout (ms). Set to -1 to disable timeout support */
173         #define CONFIG_SER_TXTIMEOUT    -1
174
175         /** Default receive timeout (ms). Set to -1 to disable timeout support */
176         #define CONFIG_SER_RXTIMEOUT    -1
177
178         /** Use RTS/CTS handshake */
179         #define CONFIG_SER_HWHANDSHAKE   0
180
181         /** Default baud rate (set to 0 to disable) */
182         #define CONFIG_SER_DEFBAUDRATE   0
183
184         /** Enable ser_gets() and ser_gets_echo() */
185         #define CONFIG_SER_GETS          0
186
187         /** Enable second serial port in emulator. */
188         #define CONFIG_EMUL_UART1        0
189
190         /**
191          * Transmit always something on serial port 0 TX
192          * to avoid interference when sending burst of data,
193          * using AVR multiprocessor serial mode
194          */
195         #define CONFIG_SER_TXFILL        0
196
197         #define CONFIG_SER_STROBE        0
198 /*\}*/
199
200 /// Hardware timer selection for drv/timer.c
201 #define CONFIG_TIMER  TIMER_ON_OUTPUT_COMPARE2
202
203 /// Debug timer interrupt using a strobe pin.
204 #define CONFIG_TIMER_STROBE  0
205
206 /// Enable watchdog timer.
207 #define CONFIG_WATCHDOG  1
208
209 /// EEPROM type for drv/eeprom.c
210 #define CONFIG_EEPROM_TYPE EEPROM_24XX256
211
212 /// Select bitmap pixel format.
213 #define CONFIG_BITMAP_FMT  BITMAP_FMT_PLANAR_V_LSB
214
215 /// Enable line clipping algorithm.
216 #define CONFIG_GFX_CLIPPING 1
217
218 /// Enable text rendering in bitmaps.
219 #define CONFIG_GFX_TEXT 1
220
221 /// Enable virtual coordinate system.
222 #define CONFIG_GFX_VCOORDS 1
223
224 /// Keyboard polling method
225 #define CONFIG_KBD_POLL  KBD_POLL_SOFTINT
226
227 /// Enable keyboard event delivery to observers
228 #define CONFIG_KBD_OBSERVER  0
229
230 /// Enable key beeps.
231 #define CONFIG_KBD_BEEP  1
232
233 /// Enable long pression handler for keys
234 #define CONFIG_KBD_LONGPRESS  0
235
236 /**
237  * \name Type for the chart dataset
238  * \{
239  */
240 #define CONFIG_CHART_TYPE_X uint8_t
241 #define CONFIG_CHART_TYPE_Y uint8_t
242 /*\}*/
243
244 /// Enable button bar behind menus
245 #define CONFIG_MENU_MENUBAR  0
246
247 /// Enable smooth scrolling in menus.
248 #define CONFIG_MENU_SMOOTH  1
249
250 /// Abort menu after this amount of time.
251 #define CONFIG_MENU_TIMEOUT 0 /* ms */
252
253 /// Accept input implicitly after this amount of time.
254 #define CONFIG_LEVELEDIT_TIMEOUT 3000 /* ms */
255
256 /// LCD bus size. If 0 use 8bit bus.
257 #define CONFIG_LCD_4BIT 0
258
259 #endif /* APPCONFIG_H */