Loading...
Searching...
No Matches
periph_cpu.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Thomas Perrot <thomas.perrot@tupi.fr>
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
20#ifndef PERIPH_CPU_H
21#define PERIPH_CPU_H
22
23#include "periph_cpu_common.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
33#define PM_NUM_MODES (5)
34#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN
35#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE
36#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY
37#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC
43enum {
44 PORT_B = 1,
45 PORT_C = 2,
46 PORT_D = 3,
47 PORT_E = 4,
48 PORT_F = 5
49};
50
56#define CPU_ATMEGA_EXT_INTS { GPIO_PIN(PORT_D, 0), \
57 GPIO_PIN(PORT_D, 1), \
58 GPIO_PIN(PORT_D, 2), \
59 GPIO_PIN(PORT_D, 3) }
60
64static inline uint8_t atmega_pin2exti(uint8_t port_num, uint8_t pin_num)
65{
66 (void)port_num;
67 return pin_num;
68}
69
73static inline bool atmega_has_pin_exti(uint8_t port_num, uint8_t pin_num)
74{
75 return ((pin_num < 4) && (port_num == PORT_D));
76}
77
82#define I2C_PORT_REG PORTD
83#define I2C_PIN_MASK (1 << PORTD0) | (1 << PORTD1)
90#define EEPROM_SIZE (1024U) /* 1kB */
93#ifdef __cplusplus
94}
95#endif
96
97#include "periph_conf.h"
99
100#endif /* PERIPH_CPU_H */
static bool atmega_has_pin_exti(uint8_t port_num, uint8_t pin_num)
Check if the given pin can be used as external interrupt.
Definition periph_cpu.h:82
static uint8_t atmega_pin2exti(uint8_t port_num, uint8_t pin_num)
Get the interrupt vector number of the given GPIO pin.
Definition periph_cpu.h:73
@ PORT_B
port B
Definition periph_cpu.h:48
@ PORT_C
port C
Definition periph_cpu.h:49
@ PORT_F
port F
Definition periph_cpu.h:52
@ PORT_E
port E
Definition periph_cpu.h:51
@ PORT_D
port D
Definition periph_cpu.h:50
Default timer configuration.