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 
10 #pragma once
11 
23 #include "periph_cpu_common.h"
24 
25 #ifdef __cplusplus
26 extern "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
43 enum {
44  PORT_A = 0,
45  PORT_B = 1,
46  PORT_C = 2,
47  PORT_D = 3,
48  PORT_E = 4,
49  PORT_F = 5,
50  PORT_G = 6,
51  PORT_H = 7,
52  PORT_J = 8,
53  PORT_K = 9,
54  PORT_L = 10
55 };
56 
62 #define CPU_ATMEGA_EXT_INTS { GPIO_PIN(PORT_D, 0), \
63  GPIO_PIN(PORT_D, 1), \
64  GPIO_PIN(PORT_D, 2), \
65  GPIO_PIN(PORT_D, 3), \
66  GPIO_PIN(PORT_E, 4), \
67  GPIO_PIN(PORT_E, 5), \
68  GPIO_PIN(PORT_E, 6), \
69  GPIO_PIN(PORT_E, 7) }
70 
74 static inline uint8_t atmega_pin2exti(uint8_t port_num, uint8_t pin_num)
75 {
76  (void)port_num;
77  return pin_num;
78 }
79 
83 static inline bool atmega_has_pin_exti(uint8_t port_num, uint8_t pin_num)
84 {
85  if (pin_num < 4) {
86  return port_num == PORT_D;
87  }
88 
89  return port_num == PORT_E;
90 }
91 
96 #define I2C_PORT_REG PORTD
97 #define I2C_PIN_MASK (1 << PORTD0) | (1 << PORTD1)
104 #define EEPROM_SIZE (4096U) /* 4kB */
107 #ifdef __cplusplus
108 }
109 #endif
110 
111 #include "periph_conf.h"
112 #include "default_timer_config.h"
113 
@ PORT_B
port B
Definition: periph_cpu.h:47
@ PORT_G
port G
Definition: periph_cpu.h:52
@ PORT_C
port C
Definition: periph_cpu.h:48
@ PORT_F
port F
Definition: periph_cpu.h:51
@ PORT_E
port E
Definition: periph_cpu.h:50
@ PORT_A
port A
Definition: periph_cpu.h:46
@ PORT_D
port D
Definition: periph_cpu.h:49
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:83
@ PORT_K
port K
Definition: periph_cpu.h:53
@ PORT_H
port H
Definition: periph_cpu.h:51
@ PORT_J
port J
Definition: periph_cpu.h:52
@ PORT_L
port L
Definition: periph_cpu.h:54
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:74
Default timer configuration.