Speeduino
Loading...
Searching...
No Matches
board_definition.h
Go to the documentation of this file.
1#pragma once
2
10#include <stdint.h>
11#include <Arduino.h>
12#include "type_traits.h"
13#include "storage_api.h"
14
22void initBoard(uint32_t baudRate);
23
29void boardInitPins(void);
30
32uint16_t freeRam(void);
33
35void doSystemReset(void);
36
39
41uint8_t getSystemTemp(void);
42
45
47// Shared building blocks for the board headers
48#define _ANALOG_PINS_A0_A8 A0, A1, A2, A3, A4, A5, A6, A7, A8
49#define _ANALOG_PINS_A0_A14 _ANALOG_PINS_A0_A8, A9, A10, A11, A12, A13, A14
51
52// Include a specific header for a board.
53#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
54 #include "board_avr2560.h"
55#elif defined(CORE_TEENSY)
56 #if defined(__MK64FX512__) || defined(__MK66FX1M0__)
57 #include "board_teensy35.h"
58 #elif defined(__IMXRT1062__)
59 #include "board_teensy41.h"
60 #endif
61#elif defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(STM32)
62 #include "board_stm32_official.h"
63#elif defined(__SAME51J19A__)
64 #include "board_same51.h"
65// Allow external injection of the board definition via compiler flags
66#elif defined(EXTERNAL_BOARD_H)
67 #include EXTERNAL_BOARD_H
68#else
69 #error Incorrect board selected. Please select the correct board (Usually Mega 2560) and upload again
70#endif
71
72#if defined(RTC_ENABLED)
74void boardInitRTC(void);
75#endif
76
77// It is important that we cast this to the actual overflow limit of the timer.
78// The compare variables type can be wider than the timer overflow.
79#define SET_COMPARE(compare, value) (compare) = (COMPARE_TYPE)(value)
80
static constexpr uint32_t ticksToMicros(COMPARE_TYPE ticks)
Convert timer ticks to µS.
Definition board_avr2560.h:50
uint8_t getSystemTemp(void)
Get the board temp for display in TunerStudio (optional)
constexpr uint32_t MAX_TIMER_PERIOD
The longest period of time (in uS) that the timer can permit.
Definition board_definition.h:82
storage_api_t getBoardStorageApi(void)
Get the storage API for the board.
void boardInitPins(void)
Pin specific initialisation (optional - can be empty)
void jumpToBootloader(void)
Trigger the boot loader (optional)
void initBoard(uint32_t baudRate)
Initialise the board, including USB comms.
void doSystemReset(void)
Reset the board (optional)
uint16_t freeRam(void)
Calculate free RAM for display in TunerStudio.
Defines the required external storage API plus some convenience functions built around that API.
Definition type_traits.h:27
The external storage API. This must be supported by any storage system. E.g. EEPROM,...
Definition storage_api.h:18
Minimal polyfill for the standard library type traits, since it isn't available with avr-gcc.