4 * This file is part of BeRTOS.
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.
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.
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
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.
29 * Copyright 2008 Develer S.r.l. (http://www.develer.com/)
30 * All Rights Reserved.
33 * \brief DC motor hardware-specific definitions
37 * \author Daniele Basile <asterix@develer.com>
43 #warning TODO:This is an example implementation, you must implement it!
46 #define DC_MOTOR0_EN_PIN /* Implement me! */
47 #define DC_MOTOR0_DIR_PIN /* Implement me! */
48 #define DC_MOTOR0_CLEAR /* Implement me! */
49 #define DC_MOTOR0_SET /* Implement me! */
51 /* Add other motor here */
54 #define DC_MOTOR_PIN_INIT_MACRO(port, index) \
56 /* put here code to init pins */ \
60 #define DC_MOTOR_SET_ENABLE(index) do { /* Implement me! */ } while (0)
61 #define DC_MOTOR_SET_DISABLE(index) do { /* Implement me! */ } while (0)
62 #define DC_MOTOR_DIR_CW_MACRO(index) do { /* Implement me! */ } while (0)
63 #define DC_MOTOR_DIR_CCW_MACRO(index) do { /* Implement me! */ } while (0)
66 #define DC_MOTOR_ENABLE(index) \
71 DC_MOTOR_SET_ENABLE(0); \
73 /* Add other motor here */ \
77 #define DC_MOTOR_DISABLE(index) \
82 DC_MOTOR_SET_DISABLE(0); \
84 /* Add other motor here */ \
89 #define DC_MOTOR_DIR_CW(index) \
94 DC_MOTOR_DIR_CW_MACRO(0); \
96 /* Add other motor here */ \
100 #define DC_MOTOR_DIR_CCW(index) \
105 DC_MOTOR_DIR_CCW_MACRO(0); \
107 /* Add other motor here */ \
113 #define DC_MOTOR_SET_DIR(index, dir) \
116 DC_MOTOR_DIR_CW(index); \
118 DC_MOTOR_DIR_CCW(index); \
121 #define DC_MOTOR_INIT(index) \
126 DC_MOTOR_PIN_INIT_MACRO(A, 0); \
129 DC_MOTOR_PIN_INIT_MACRO(A, 1); \
134 #endif /* HW_DC_MOTOR_H */