Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
board.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2013 Ludwig Knüpfer <ludwig.knuepfer@fu-berlin.de>
3
* SPDX-License-Identifier: LGPL-2.1-only
4
*/
5
6
#pragma once
7
21
#include <stdint.h>
22
23
/* RIOT includes */
24
#include <
motor_driver.h
>
25
26
#ifdef __cplusplus
27
extern
"C"
{
28
#endif
29
34
void
_native_LED_GREEN_OFF(
void
);
35
void
_native_LED_GREEN_ON(
void
);
36
void
_native_LED_GREEN_TOGGLE(
void
);
37
void
_native_LED_RED_OFF(
void
);
38
void
_native_LED_RED_ON(
void
);
39
void
_native_LED_RED_TOGGLE(
void
);
40
41
#define LED0_ON (_native_LED_RED_ON())
42
#define LED0_OFF (_native_LED_RED_OFF())
43
#define LED0_TOGGLE (_native_LED_RED_TOGGLE())
44
#define LED1_ON (_native_LED_GREEN_ON())
45
#define LED1_OFF (_native_LED_GREEN_OFF())
46
#define LED1_TOGGLE (_native_LED_GREEN_TOGGLE())
49
#if defined(MODULE_MTD) || DOXYGEN
54
#ifndef MTD_PAGE_SIZE
55
#if defined(MODULE_FATFS) || defined(MODULE_LWEXT4)
56
#define MTD_PAGE_SIZE (512)
57
#else
58
#define MTD_PAGE_SIZE (256)
59
#endif
60
#endif
61
#ifndef MTD_SECTOR_SIZE
62
#if defined(MODULE_FATFS) || defined(MODULE_LWEXT4)
63
#define MTD_SECTOR_SIZE (512)
64
#else
65
#define MTD_SECTOR_SIZE (4096)
66
#endif
67
#endif
68
#ifndef MTD_SECTOR_NUM
69
#if defined(MODULE_FATFS) || defined(MODULE_LWEXT4)
70
#define MTD_SECTOR_NUM (32768)
71
#else
72
#define MTD_SECTOR_NUM (2048)
73
#endif
74
#endif
77
#ifndef MTD_WRITE_SIZE
78
#define MTD_WRITE_SIZE (1)
79
#endif
80
#ifndef MTD_NATIVE_FILENAME
81
#define MTD_NATIVE_FILENAME "MEMORY.bin"
82
#endif
86
#define MTD_0 mtd_dev_get(0)
87
#endif
88
93
#ifndef FS_NATIVE_DIR
94
#define FS_NATIVE_DIR "native"
95
#endif
98
#if defined(MODULE_SPIFFS) || DOXYGEN
103
/* SPIFFS config flags */
104
#ifndef SPIFFS_READ_ONLY
105
#define SPIFFS_READ_ONLY (0)
106
#endif
107
#ifndef SPIFFS_SINGLETON
108
#define SPIFFS_SINGLETON (0)
109
#endif
110
#ifndef SPIFFS_HAL_CALLBACK_EXTRA
111
#define SPIFFS_HAL_CALLBACK_EXTRA (1)
112
#endif
113
#ifndef SPIFFS_CACHE
114
#define SPIFFS_CACHE (1)
115
#endif
116
117
#if SPIFFS_SINGLETON == 1
118
/* MTD config if singleton is used */
119
#ifndef SPIFFS_CFG_PHYS_SZ
120
#define SPIFFS_CFG_PHYS_SZ(ignore) (MTD_SECTOR_SIZE * MTD_SECTOR_NUM)
121
#endif
122
#ifndef SPIFFS_CFG_PHYS_ERASE_SZ
123
#define SPIFFS_CFG_PHYS_ERASE_SZ(ignore) (MTD_SECTOR_SIZE)
124
#endif
125
#ifndef SPIFFS_CFG_PHYS_ADDR
126
#define SPIFFS_CFG_PHYS_ADDR(ignore) (0)
127
#endif
128
#ifndef SPIFFS_CFG_LOG_PAGE_SZ
129
#define SPIFFS_CFG_LOG_PAGE_SZ(ignore) (MTD_PAGE_SIZE)
130
#endif
131
#ifndef SPIFFS_CFG_LOG_BLOCK_SZ
132
#define SPIFFS_CFG_LOG_BLOCK_SZ(ignore) (MTD_SECTOR_SIZE)
133
#endif
134
#endif
135
136
#if SPIFFS_HAL_CALLBACK_EXTRA == 0
137
/* Default MTD device if no callback parameter */
138
#ifndef SPIFFS_MTD_DEV
139
#define SPIFFS_MTD_DEV (MTD_0)
140
#endif
141
#endif
143
#endif
144
145
#if MODULE_PERIPH_QDEC
153
void
native_motor_driver_qdec_simulation( \
154
const
motor_driver_t
motor_driver, uint8_t motor_id, \
155
int32_t pwm_duty_cycle);
156
157
/* C++ standard do not support designated initializers */
158
#if !(defined __cplusplus) && (defined MODULE_PERIPH_QDEC)
159
164
static
const
motor_driver_config_t
motor_driver_config
[] = {
165
{
166
.
pwm_dev
= 0,
167
.mode =
MOTOR_DRIVER_1_DIR_BRAKE
,
168
.mode_brake =
MOTOR_BRAKE_LOW
,
169
.pwm_mode =
PWM_LEFT
,
170
.pwm_frequency = 20000U,
171
.pwm_resolution = 1000U,
172
.nb_motors = 2,
173
.motors = {
174
{
175
.pwm_channel = 0,
176
.gpio_enable =
GPIO_PIN
(0, 0),
177
.gpio_dir0 =
GPIO_PIN
(0, 0),
178
.gpio_dir1_or_brake =
GPIO_PIN
(0, 0),
179
.gpio_dir_reverse = 0,
180
.gpio_enable_invert = 0,
181
.gpio_brake_invert = 0,
182
},
183
{
184
.pwm_channel = 1,
185
.gpio_enable =
GPIO_PIN
(0, 0),
186
.gpio_dir0 =
GPIO_PIN
(0, 0),
187
.gpio_dir1_or_brake =
GPIO_PIN
(0, 0),
188
.gpio_dir_reverse = 1,
189
.gpio_enable_invert = 0,
190
.gpio_brake_invert = 0,
191
},
192
},
193
.cb = native_motor_driver_qdec_simulation,
194
},
195
};
196
197
#define MOTOR_DRIVER_NUMOF ARRAY_SIZE(motor_driver_config)
199
#endif
200
205
#define CONFIG_ZTIMER_USEC_TYPE ZTIMER_TYPE_PERIPH_TIMER
206
#define CONFIG_ZTIMER_USEC_DEV TIMER_DEV(0)
207
/* on native, anything can happen... */
208
#define CONFIG_ZTIMER_USEC_MIN (64)
211
#endif
/* __cplusplus */
212
213
#ifdef __cplusplus
214
}
215
#endif
216
GPIO_PIN
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition:
periph_cpu.h:42
motor_driver_config
static const motor_driver_config_t motor_driver_config[]
Motor driver config.
Definition:
board.h:59
motor_driver_t
unsigned int motor_driver_t
Default motor driver type definition.
Definition:
motor_driver.h:155
MOTOR_DRIVER_1_DIR_BRAKE
@ MOTOR_DRIVER_1_DIR_BRAKE
Single GPIO for direction, \ Single GPIO for BRAKE.
Definition:
motor_driver.h:119
MOTOR_BRAKE_LOW
@ MOTOR_BRAKE_LOW
Low stage brake.
Definition:
motor_driver.h:127
PWM_LEFT
@ PWM_LEFT
left aligned
Definition:
periph_conf.h:217
motor_driver.h
High-level driver for DC motors.
motor_driver_config_t
Describe DC motor driver with PWM device and motors array.
Definition:
motor_driver.h:167
motor_driver_config_t::pwm_dev
pwm_t pwm_dev
PWM device driving motors.
Definition:
motor_driver.h:168
Generated on Thu Oct 9 2025 07:29:27 by
1.9.1