Loading...
Searching...
No Matches
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
20
21#include <stdint.h>
22
23/* RIOT includes */
24#include <motor_driver.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
34void _native_LED_GREEN_OFF(void);
35void _native_LED_GREEN_ON(void);
36void _native_LED_GREEN_TOGGLE(void);
37void _native_LED_RED_OFF(void);
38void _native_LED_RED_ON(void);
39void _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())
48
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
84
86#define MTD_0 mtd_dev_get(0)
87#endif
88
93#ifndef FS_NATIVE_DIR
94#define FS_NATIVE_DIR "native"
95#endif
97
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
153void 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
164static const motor_driver_config_t motor_driver_config[] = {
165 {
166 .pwm_dev = 0,
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)
210
211#endif /* __cplusplus */
212
213#ifdef __cplusplus
214}
215#endif
216
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition periph_cpu.h:45
@ PWM_LEFT
left aligned
unsigned int motor_driver_t
Default motor driver type definition.
@ MOTOR_DRIVER_1_DIR_BRAKE
Single GPIO for direction, \ Single GPIO for BRAKE.
@ MOTOR_BRAKE_LOW
Low stage brake.
High-level driver for DC motors.
Describe DC motor driver with PWM device and motors array.