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 
18 #include "cpu.h"
19 #include "macros/units.h"
20 
21 #ifdef __cplusplus
22 extern "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
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)
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)
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)
177 #ifdef __cplusplus
178 }
179 #endif
180 
Unit helper macros.