Loading...
Searching...
No Matches
periph_cpu.h File Reference

CPU specific definitions for internal peripheral handling. More...

Detailed Description

CPU specific definitions for internal peripheral handling.

Author
René Herthel rene-.nosp@m.hert.nosp@m.hel@o.nosp@m.utlo.nosp@m.ok.de
Hauke Petersen hauke.nosp@m..pet.nosp@m.ersen.nosp@m.@fu-.nosp@m.berli.nosp@m.n.de

Definition in file periph_cpu.h.

#include "periph_cpu_common.h"
#include "periph_conf.h"
#include "default_timer_config.h"
+ Include dependency graph for periph_cpu.h:

Go to the source code of this file.

Macros

#define GPIO_PIN(x, y)   ((x << 4) | y)
 Define a CPU specific GPIO pin generator macro.
 
#define CPU_ATMEGA_EXT_INTS
 Available external interrupt pins on the ATmega328p family.
 

Enumerations

enum  { PORT_B = 1 , PORT_C = 2 , PORT_D = 3 }
 Available ports on the ATmega328p family. More...
 

Functions

static uint8_t atmega_pin2exti (uint8_t port_num, uint8_t pin_num)
 Get the interrupt vector number of the given GPIO pin.
 
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.
 

Power management configuration

#define PM_NUM_MODES   (5)
 
#define AVR8_PM_SLEEP_MODE_0   SLEEP_MODE_PWR_DOWN
 Power Down.
 
#define AVR8_PM_SLEEP_MODE_1   SLEEP_MODE_PWR_SAVE
 Power Save.
 
#define AVR8_PM_SLEEP_MODE_2   SLEEP_MODE_STANDBY
 Standby.
 
#define AVR8_PM_SLEEP_MODE_3   SLEEP_MODE_ADC
 Sleep ADC low noise.
 

Defines for the I2C interface

#define I2C_PORT_REG   PORTC
 
#define I2C_PIN_MASK   (1 << PORTC4) | (1 << PORTC5)
 

EEPROM configuration

#define EEPROM_SIZE   (1024U) /* 1kB */
 

Macro Definition Documentation

◆ AVR8_PM_SLEEP_MODE_0

#define AVR8_PM_SLEEP_MODE_0   SLEEP_MODE_PWR_DOWN

Power Down.

Definition at line 35 of file periph_cpu.h.

◆ AVR8_PM_SLEEP_MODE_1

#define AVR8_PM_SLEEP_MODE_1   SLEEP_MODE_PWR_SAVE

Power Save.

Definition at line 36 of file periph_cpu.h.

◆ AVR8_PM_SLEEP_MODE_2

#define AVR8_PM_SLEEP_MODE_2   SLEEP_MODE_STANDBY

Standby.

Definition at line 37 of file periph_cpu.h.

◆ AVR8_PM_SLEEP_MODE_3

#define AVR8_PM_SLEEP_MODE_3   SLEEP_MODE_ADC

Sleep ADC low noise.

Definition at line 38 of file periph_cpu.h.

◆ CPU_ATMEGA_EXT_INTS

#define CPU_ATMEGA_EXT_INTS
Value:
{ GPIO_PIN(PORT_D, 2), \
GPIO_PIN(PORT_D, 3) }
@ PORT_D
port D
Definition periph_cpu.h:50
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition periph_cpu.h:46

Available external interrupt pins on the ATmega328p family.

In order of their interrupt number.

Definition at line 60 of file periph_cpu.h.

◆ EEPROM_SIZE

#define EEPROM_SIZE   (1024U) /* 1kB */

Definition at line 96 of file periph_cpu.h.

◆ GPIO_PIN

#define GPIO_PIN (   x,
 
)    ((x << 4) | y)

Define a CPU specific GPIO pin generator macro.

Definition at line 44 of file periph_cpu.h.

◆ I2C_PIN_MASK

#define I2C_PIN_MASK   (1 << PORTC4) | (1 << PORTC5)

Definition at line 89 of file periph_cpu.h.

◆ I2C_PORT_REG

#define I2C_PORT_REG   PORTC

Definition at line 88 of file periph_cpu.h.

◆ PM_NUM_MODES

#define PM_NUM_MODES   (5)

Definition at line 34 of file periph_cpu.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Available ports on the ATmega328p family.

Enumerator
PORT_B 

port B

PORT_C 

port C

PORT_D 

port D

Definition at line 49 of file periph_cpu.h.

Function Documentation

◆ atmega_has_pin_exti()

static bool atmega_has_pin_exti ( uint8_t  port_num,
uint8_t  pin_num 
)
inlinestatic

Check if the given pin can be used as external interrupt.

Definition at line 75 of file periph_cpu.h.

◆ atmega_pin2exti()

static uint8_t atmega_pin2exti ( uint8_t  port_num,
uint8_t  pin_num 
)
inlinestatic

Get the interrupt vector number of the given GPIO pin.

Definition at line 66 of file periph_cpu.h.