Loading...
Searching...
No Matches
board.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021 Gerson Fernando Budke
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
17
18#include "cpu.h"
19#include "macros/units.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
28#define CLOCK_CORECLOCK MHZ(32)
29
33#define STDIO_UART_DEV UART_DEV(2)
34
48#ifndef STDIO_UART_BAUDRATE
49#define STDIO_UART_BAUDRATE (115200U)
50#endif
52
57#define LED_PORT PORTE
58
59#define LED0_PIN GPIO_PIN(PORT_E, 0)
60#define LED0_MODE GPIO_OUT
61#define LED0_MASK (PIN0_bm)
62#define LED0_ON (LED_PORT.OUTCLR = LED0_MASK)
63#define LED0_OFF (LED_PORT.OUTSET = LED0_MASK)
64#define LED0_TOGGLE (LED_PORT.OUTTGL = LED0_MASK)
65
66#define LED1_PIN GPIO_PIN(PORT_E, 1)
67#define LED1_MODE GPIO_OUT
68#define LED1_MASK (PIN1_bm)
69#define LED1_ON (LED_PORT.OUTCLR = LED1_MASK)
70#define LED1_OFF (LED_PORT.OUTSET = LED1_MASK)
71#define LED1_TOGGLE (LED_PORT.OUTTGL = LED1_MASK)
72
73#define LED2_PIN GPIO_PIN(PORT_E, 2)
74#define LED2_MODE GPIO_OUT
75#define LED2_MASK (PIN2_bm)
76#define LED2_ON (LED_PORT.OUTCLR = LED2_MASK)
77#define LED2_OFF (LED_PORT.OUTSET = LED2_MASK)
78#define LED2_TOGGLE (LED_PORT.OUTTGL = LED2_MASK)
79
80#define LED3_PIN GPIO_PIN(PORT_E, 3)
81#define LED3_MODE GPIO_OUT
82#define LED3_MASK (PIN3_bm)
83#define LED3_ON (LED_PORT.OUTCLR = LED3_MASK)
84#define LED3_OFF (LED_PORT.OUTSET = LED3_MASK)
85#define LED3_TOGGLE (LED_PORT.OUTTGL = LED3_MASK)
86
87#define LED4_PIN GPIO_PIN(PORT_E, 4)
88#define LED4_MODE GPIO_OUT
89#define LED4_MASK (PIN4_bm)
90#define LED4_ON (LED_PORT.OUTCLR = LED4_MASK)
91#define LED4_OFF (LED_PORT.OUTSET = LED4_MASK)
92#define LED4_TOGGLE (LED_PORT.OUTTGL = LED4_MASK)
93
94#define LED5_PIN GPIO_PIN(PORT_E, 5)
95#define LED5_MODE GPIO_OUT
96#define LED5_MASK (PIN5_bm)
97#define LED5_ON (LED_PORT.OUTCLR = LED5_MASK)
98#define LED5_OFF (LED_PORT.OUTSET = LED5_MASK)
99#define LED5_TOGGLE (LED_PORT.OUTTGL = LED5_MASK)
100
101#define LED6_PIN GPIO_PIN(PORT_E, 6)
102#define LED6_MODE GPIO_OUT
103#define LED6_MASK (PIN6_bm)
104#define LED6_ON (LED_PORT.OUTCLR = LED6_MASK)
105#define LED6_OFF (LED_PORT.OUTSET = LED6_MASK)
106#define LED6_TOGGLE (LED_PORT.OUTTGL = LED6_MASK)
107
108#define LED7_PIN GPIO_PIN(PORT_E, 7)
109#define LED7_MODE GPIO_OUT
110#define LED7_MASK (PIN7_bm)
111#define LED7_ON (LED_PORT.OUTCLR = LED7_MASK)
112#define LED7_OFF (LED_PORT.OUTSET = LED7_MASK)
113#define LED7_TOGGLE (LED_PORT.OUTTGL = LED7_MASK)
114
115#define LED_PORT_MASK (LED0_MASK | LED1_MASK | LED2_MASK | LED3_MASK | \
116 LED4_MASK | LED5_MASK | LED6_MASK | LED7_MASK)
118
123#define BTN0_PIN GPIO_PIN(PORT_D, 0)
124#define BTN0_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
125#define BTN0_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
126
127#define BTN1_PIN GPIO_PIN(PORT_D, 1)
128#define BTN1_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
129#define BTN1_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
130
131#define BTN2_PIN GPIO_PIN(PORT_D, 2)
132#define BTN2_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
133#define BTN2_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
134
135#define BTN3_PIN GPIO_PIN(PORT_D, 3)
136#define BTN3_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
137#define BTN3_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
138
139#define BTN4_PIN GPIO_PIN(PORT_D, 4)
140#define BTN4_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
141#define BTN4_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
142
143#define BTN5_PIN GPIO_PIN(PORT_D, 5)
144#define BTN5_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
145#define BTN5_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
146
147#define BTN6_PIN GPIO_PIN(PORT_R, 0)
148#define BTN6_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
149#define BTN6_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
150
151#define BTN7_PIN GPIO_PIN(PORT_R, 1)
152#define BTN7_MODE (GPIO_IN | GPIO_OPC_PU | GPIO_SLEW_RATE)
153#define BTN7_INT_FLANK (GPIO_ISC_FALLING | GPIO_LVL_LOW)
155
170#define XTIMER_DEV TIMER_DEV(0)
171#define XTIMER_CHAN (0)
172#define XTIMER_WIDTH (16)
173#define XTIMER_HZ KHZ(500)
174#define XTIMER_BACKOFF (150)
176
177#ifdef __cplusplus
178}
179#endif
180
Unit helper macros.