Loading...
Searching...
No Matches
periph_cpu.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 HAW Hamburg
3 * 2016 Freie Universität Berlin
4 *
5 * This file is subject to the terms and conditions of the GNU Lesser
6 * General Public License v2.1. See the file LICENSE in the top level
7 * directory for more details.
8 */
9
21#ifndef PERIPH_CPU_H
22#define PERIPH_CPU_H
23
24#include "periph_cpu_common.h"
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
34#define PM_NUM_MODES (5)
35#define AVR8_PM_SLEEP_MODE_0 SLEEP_MODE_PWR_DOWN
36#define AVR8_PM_SLEEP_MODE_1 SLEEP_MODE_PWR_SAVE
37#define AVR8_PM_SLEEP_MODE_2 SLEEP_MODE_STANDBY
38#define AVR8_PM_SLEEP_MODE_3 SLEEP_MODE_ADC
44#define GPIO_PIN(x, y) ((x << 4) | y)
45
49enum {
50 PORT_B = 1,
51 PORT_C = 2,
52 PORT_D = 3
53};
54
60#define CPU_ATMEGA_EXT_INTS { GPIO_PIN(PORT_D, 2), \
61 GPIO_PIN(PORT_D, 3) }
62
66static inline uint8_t atmega_pin2exti(uint8_t port_num, uint8_t pin_num)
67{
68 (void)port_num;
69 return pin_num - 2;
70}
71
75static inline bool atmega_has_pin_exti(uint8_t port_num, uint8_t pin_num)
76{
77 if (port_num == PORT_D) {
78 return ((pin_num == 2) || (pin_num == 3));
79 }
80
81 return false;
82}
83
88#define I2C_PORT_REG PORTC
89#define I2C_PIN_MASK (1 << PORTC4) | (1 << PORTC5)
96#define EEPROM_SIZE (1024U) /* 1kB */
99#ifdef __cplusplus
100}
101#endif
102
103#include "periph_conf.h"
104#include "default_timer_config.h"
105
106#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_D
port D
Definition periph_cpu.h:50
Default timer configuration.