![]() |
ATxmega Core
|
#include <avr/io.h>
#include <avr/interrupt.h>
Go to the source code of this file.
Macros | |
#define | bool uint8_t |
#define | true 1 |
#define | false 0 |
#define | INT_LEVEL_OFF 0 |
#define | INT_LEVEL_LOW 1 |
#define | INT_LEVEL_MED 2 |
#define | INT_LEVEL_HIGH 3 |
#define | PRESCALER_CPU_1 CLK_PSADIV_1_gc |
#define | PRESCALER_CPU_2 CLK_PSADIV_2_gc |
#define | PRESCALER_CPU_4 CLK_PSADIV_4_gc |
#define | PRESCALER_CPU_8 CLK_PSADIV_8_gc |
#define | PRESCALER_CPU_16 CLK_PSADIV_16_gc |
#define | PRESCALER_CPU_32 CLK_PSADIV_32_gc |
#define | PRESCALER_CPU_64 CLK_PSADIV_64_gc |
#define | PRESCALER_CPU_128 CLK_PSADIV_128_gc |
#define | PRESCALER_CPU_256 CLK_PSADIV_256_gc |
#define | PRESCALER_CPU_512 CLK_PSADIV_512_gc |
#define | OUT_PORT_CLK_PORTC 0 |
#define | OUT_PORT_CLK_PORTD 1 |
#define | PER_WDT_8ms WDT_PER_8CLK_gc |
#define | PER_WDT_16ms WDT_PER_16CLK_gc |
#define | PER_WDT_32ms WDT_PER_32CLK_gc |
#define | PER_WDT_64ms WDT_PER_64CLK_gc |
#define | PER_WDT_125ms WDT_PER_125CLK_gc |
#define | PER_WDT_250ms WDT_PER_250CLK_gc |
#define | PER_WDT_500ms WDT_PER_500CLK_gc |
#define | PER_WDT_1s WDT_PER_1KCLK_gc |
#define | PER_WDT_2s WDT_PER_2KCLK_gc |
#define | PER_WDT_4s WDT_PER_4KCLK_gc |
#define | PER_WDT_8s WDT_PER_8KCLK_gc |
#define | PULL_IO_TRISTATE (0x0 << 3) |
#define | PULL_IO_BUSHOLDER (0x1 << 3) |
#define | PULL_IO_DOWN (0x2 << 3) |
#define | PULL_IO_UP (0x3 << 3) |
#define | SENSE_IO_EDGES_BOTH 0 |
#define | SENSE_IO_EDGE_RISING 1 |
#define | SENSE_IO_EDGE_FALLING 2 |
#define | SENSE_IO_LOW_LEVEL 3 |
#define | SENSE_IO_NO_INT_USED 0 |
#define | OUT_IO_DIGITAL (0x0 << 3) |
#define | OUT_IO_WIREDOR (0x4 << 3) |
#define | OUT_IO_WIREDAND (0x5 << 3) |
#define | OUT_IO_WIREDORPULL (0x6 << 3) |
#define | OUT_IO_WIREDANDPULL (0x7 << 3) |
#define | IN_EN_IO_EN 1 |
#define | IN_EN_IO_DIS 0 |
#define | set_io(port, pin) |
#define | clear_io(port, pin) |
#define | toggle_io(port, pin) |
#define | read_io(port, pin) |
#define | set_io_mask(port, mask) |
#define | clear_io_mask(port, mask) |
#define | toggle_io_mask(port, mask) |
#define | TIMER_PRESCALER_DIV1 1 |
#define | TIMER_PRESCALER_DIV2 2 |
#define | TIMER_PRESCALER_DIV4 3 |
#define | TIMER_PRESCALER_DIV8 4 |
#define | TIMER_PRESCALER_DIV64 5 |
#define | TIMER_PRESCALER_DIV256 6 |
#define | TIMER_PRESCALER_DIV1024 7 |
#define | RES_ADC_8BITS ADC_RESOLUTION_8BIT_gc |
#define | RES_ADC_12BITS ADC_RESOLUTION_12BIT_gc |
#define | REF_ADC_1V ADC_REFSEL_INT1V_gc | ADC_BANDGAP_bm |
#define | REF_ADC_VCC ADC_REFSEL_INTVCC_gc |
#define | REF_ADC_PORTA ADC_REFSEL_AREFA_gc |
#define | REF_ADC_PORTB ADC_REFSEL_AREFB_gc |
#define | REF_ADC_VCCDIV2 ADC_REFSEL_INTVCC2_gc |
#define | PRESCALER_ADC_DIV4 ADC_PRESCALER_DIV4_gc |
#define | PRESCALER_ADC_DIV8 ADC_PRESCALER_DIV8_gc |
#define | PRESCALER_ADC_DIV16 ADC_PRESCALER_DIV16_gc |
#define | PRESCALER_ADC_DIV32 ADC_PRESCALER_DIV32_gc |
#define | PRESCALER_ADC_DIV64 ADC_PRESCALER_DIV64_gc |
#define | PRESCALER_ADC_DIV128 ADC_PRESCALER_DIV128_gc |
#define | PRESCALER_ADC_DIV256 ADC_PRESCALER_DIV256_gc |
#define | PRESCALER_ADC_DIV512 ADC_PRESCALER_DIV512_gc |
Functions | |
bool | cpu_config_clock (uint32_t cpu_freq, bool lock_clock, bool external_clock) |
void | cpu_config_clock_32Khz (uint8_t prescaler, bool lock_clock) |
bool | cpu_change_clock (uint32_t cpu_freq, bool lock_clock) |
void | cpu_clk_output (bool stay_on_loop, bool pin4_instead_of_7, uint8_t out_port) |
void | cpu_enable_int_level (uint8_t int_level) |
void | cpu_disable_int_level (uint8_t int_level) |
void | wdt_enable (uint8_t per) |
void | wdt_disable (void) |
void | wdt_reset_device (void) |
void | io_pin2in (PORT_t *port, uint8_t pin, uint8_t pull, uint8_t sense) |
void | io_pin2out (PORT_t *port, uint8_t pin, uint8_t out, bool input_en) |
void | io_pin2out_with_interrupt (PORT_t *port, uint8_t pin, uint8_t out, uint8_t sense) |
void | io_set_int (PORT_t *port, uint8_t int_level, uint8_t int_n, uint8_t mask, bool reset_mask) |
void | timer_type0_enable (TC0_t *timer, uint8_t prescaler, uint16_t target_count, uint8_t int_level) |
void | timer_type0_pwm (TC0_t *timer, uint8_t prescaler, uint16_t target_count, uint16_t duty_cycle_count, uint8_t int_level_ovf, uint8_t int_level_cca) |
void | timer_type0_set_target (TC0_t *timer, uint16_t target_count) |
bool | timer_type0_get_flag (TC0_t *timer) |
void | timer_type0_reset_flag (TC0_t *timer) |
void | timer_type0_stop (TC0_t *timer) |
void | timer_type0_set_counter (TC0_t *timer, uint16_t counter) |
void | timer_type0_wait (TC0_t *timer, uint8_t prescaler, uint16_t target_count) |
bool | calculate_timer_16bits (uint32_t f_cpu, float freq, uint8_t *timer_prescaler, uint16_t *timer_target_count) |
void | timer_type1_enable (TC1_t *timer, uint8_t prescaler, uint16_t target_count, uint8_t int_level) |
void | timer_type1_set_target (TC1_t *timer, uint16_t target_count) |
bool | timer_type1_get_flag (TC1_t *timer) |
void | timer_type1_reset_flag (TC1_t *timer) |
void | timer_type1_stop (TC1_t *timer) |
void | timer_type1_set_counter (TC1_t *timer, uint16_t counter) |
void | timer_type1_wait (TC1_t *timer, uint8_t prescaler, uint16_t target_count) |
bool | eeprom_is_busy (void) |
uint8_t | eeprom_rd_byte (uint16_t addr) |
void | eeprom_wr_byte (uint16_t addr, uint8_t byte) |
void | eeprom_wr_i16 (uint16_t addr, int16_t _16b) |
void | eeprom_wr_i32 (uint16_t addr, int32_t _32b) |
int16_t | eeprom_rd_i16 (uint16_t addr) |
int32_t | eeprom_rd_i32 (uint16_t addr) |
void | adc_A_initialize_single_ended (uint8_t analog_reference) |
int16_t | adc_A_read_channel (uint8_t index) |
void | adc_A_calibrate_offset (uint8_t index) |
uint16_t | adcA_unsigned_single_ended (ADC_t *adc, uint8_t res, uint8_t ref, uint8_t prescaler, uint8_t adc_pin, TC0_t *timer) |
#define bool uint8_t |
#define clear_io | ( | port, | |
pin ) |
#define clear_io_mask | ( | port, | |
mask ) |
#define false 0 |
#define IN_EN_IO_DIS 0 |
#define IN_EN_IO_EN 1 |
#define INT_LEVEL_HIGH 3 |
#define INT_LEVEL_LOW 1 |
#define INT_LEVEL_MED 2 |
#define INT_LEVEL_OFF 0 |
#define OUT_IO_DIGITAL (0x0 << 3) |
#define OUT_IO_WIREDAND (0x5 << 3) |
#define OUT_IO_WIREDANDPULL (0x7 << 3) |
#define OUT_IO_WIREDOR (0x4 << 3) |
#define OUT_IO_WIREDORPULL (0x6 << 3) |
#define OUT_PORT_CLK_PORTC 0 |
#define OUT_PORT_CLK_PORTD 1 |
#define PER_WDT_125ms WDT_PER_125CLK_gc |
#define PER_WDT_16ms WDT_PER_16CLK_gc |
#define PER_WDT_1s WDT_PER_1KCLK_gc |
#define PER_WDT_250ms WDT_PER_250CLK_gc |
#define PER_WDT_2s WDT_PER_2KCLK_gc |
#define PER_WDT_32ms WDT_PER_32CLK_gc |
#define PER_WDT_4s WDT_PER_4KCLK_gc |
#define PER_WDT_500ms WDT_PER_500CLK_gc |
#define PER_WDT_64ms WDT_PER_64CLK_gc |
#define PER_WDT_8ms WDT_PER_8CLK_gc |
#define PER_WDT_8s WDT_PER_8KCLK_gc |
#define PRESCALER_ADC_DIV128 ADC_PRESCALER_DIV128_gc |
#define PRESCALER_ADC_DIV16 ADC_PRESCALER_DIV16_gc |
#define PRESCALER_ADC_DIV256 ADC_PRESCALER_DIV256_gc |
#define PRESCALER_ADC_DIV32 ADC_PRESCALER_DIV32_gc |
#define PRESCALER_ADC_DIV4 ADC_PRESCALER_DIV4_gc |
#define PRESCALER_ADC_DIV512 ADC_PRESCALER_DIV512_gc |
#define PRESCALER_ADC_DIV64 ADC_PRESCALER_DIV64_gc |
#define PRESCALER_ADC_DIV8 ADC_PRESCALER_DIV8_gc |
#define PRESCALER_CPU_1 CLK_PSADIV_1_gc |
#define PRESCALER_CPU_128 CLK_PSADIV_128_gc |
#define PRESCALER_CPU_16 CLK_PSADIV_16_gc |
#define PRESCALER_CPU_2 CLK_PSADIV_2_gc |
#define PRESCALER_CPU_256 CLK_PSADIV_256_gc |
#define PRESCALER_CPU_32 CLK_PSADIV_32_gc |
#define PRESCALER_CPU_4 CLK_PSADIV_4_gc |
#define PRESCALER_CPU_512 CLK_PSADIV_512_gc |
#define PRESCALER_CPU_64 CLK_PSADIV_64_gc |
#define PRESCALER_CPU_8 CLK_PSADIV_8_gc |
#define PULL_IO_BUSHOLDER (0x1 << 3) |
#define PULL_IO_DOWN (0x2 << 3) |
#define PULL_IO_TRISTATE (0x0 << 3) |
#define PULL_IO_UP (0x3 << 3) |
#define read_io | ( | port, | |
pin ) |
#define REF_ADC_1V ADC_REFSEL_INT1V_gc | ADC_BANDGAP_bm |
#define REF_ADC_PORTA ADC_REFSEL_AREFA_gc |
#define REF_ADC_PORTB ADC_REFSEL_AREFB_gc |
#define REF_ADC_VCC ADC_REFSEL_INTVCC_gc |
#define REF_ADC_VCCDIV2 ADC_REFSEL_INTVCC2_gc |
#define RES_ADC_12BITS ADC_RESOLUTION_12BIT_gc |
#define RES_ADC_8BITS ADC_RESOLUTION_8BIT_gc |
#define SENSE_IO_EDGE_FALLING 2 |
#define SENSE_IO_EDGE_RISING 1 |
#define SENSE_IO_EDGES_BOTH 0 |
#define SENSE_IO_LOW_LEVEL 3 |
#define SENSE_IO_NO_INT_USED 0 |
#define set_io | ( | port, | |
pin ) |
#define set_io_mask | ( | port, | |
mask ) |
#define TIMER_PRESCALER_DIV1 1 |
#define TIMER_PRESCALER_DIV1024 7 |
#define TIMER_PRESCALER_DIV2 2 |
#define TIMER_PRESCALER_DIV256 6 |
#define TIMER_PRESCALER_DIV4 3 |
#define TIMER_PRESCALER_DIV64 5 |
#define TIMER_PRESCALER_DIV8 4 |
#define toggle_io | ( | port, | |
pin ) |
#define toggle_io_mask | ( | port, | |
mask ) |
#define true 1 |
void adc_A_calibrate_offset | ( | uint8_t | index | ) |
void adc_A_initialize_single_ended | ( | uint8_t | analog_reference | ) |
int16_t adc_A_read_channel | ( | uint8_t | index | ) |
uint16_t adcA_unsigned_single_ended | ( | ADC_t * | adc, |
uint8_t | res, | ||
uint8_t | ref, | ||
uint8_t | prescaler, | ||
uint8_t | adc_pin, | ||
TC0_t * | timer ) |
bool calculate_timer_16bits | ( | uint32_t | f_cpu, |
float | freq, | ||
uint8_t * | timer_prescaler, | ||
uint16_t * | timer_target_count ) |
void cpu_config_clock_32Khz | ( | uint8_t | prescaler, |
bool | lock_clock ) |
void cpu_disable_int_level | ( | uint8_t | int_level | ) |
void cpu_enable_int_level | ( | uint8_t | int_level | ) |
bool eeprom_is_busy | ( | void | ) |
uint8_t eeprom_rd_byte | ( | uint16_t | addr | ) |
int16_t eeprom_rd_i16 | ( | uint16_t | addr | ) |
int32_t eeprom_rd_i32 | ( | uint16_t | addr | ) |
void eeprom_wr_byte | ( | uint16_t | addr, |
uint8_t | byte ) |
void eeprom_wr_i16 | ( | uint16_t | addr, |
int16_t | _16b ) |
void eeprom_wr_i32 | ( | uint16_t | addr, |
int32_t | _32b ) |
void io_pin2in | ( | PORT_t * | port, |
uint8_t | pin, | ||
uint8_t | pull, | ||
uint8_t | sense ) |
void io_pin2out | ( | PORT_t * | port, |
uint8_t | pin, | ||
uint8_t | out, | ||
bool | input_en ) |
void io_pin2out_with_interrupt | ( | PORT_t * | port, |
uint8_t | pin, | ||
uint8_t | out, | ||
uint8_t | sense ) |
void io_set_int | ( | PORT_t * | port, |
uint8_t | int_level, | ||
uint8_t | int_n, | ||
uint8_t | mask, | ||
bool | reset_mask ) |
void timer_type0_enable | ( | TC0_t * | timer, |
uint8_t | prescaler, | ||
uint16_t | target_count, | ||
uint8_t | int_level ) |
bool timer_type0_get_flag | ( | TC0_t * | timer | ) |
void timer_type0_pwm | ( | TC0_t * | timer, |
uint8_t | prescaler, | ||
uint16_t | target_count, | ||
uint16_t | duty_cycle_count, | ||
uint8_t | int_level_ovf, | ||
uint8_t | int_level_cca ) |
void timer_type0_reset_flag | ( | TC0_t * | timer | ) |
void timer_type0_set_counter | ( | TC0_t * | timer, |
uint16_t | counter ) |
void timer_type0_set_target | ( | TC0_t * | timer, |
uint16_t | target_count ) |
void timer_type0_stop | ( | TC0_t * | timer | ) |
void timer_type0_wait | ( | TC0_t * | timer, |
uint8_t | prescaler, | ||
uint16_t | target_count ) |
void timer_type1_enable | ( | TC1_t * | timer, |
uint8_t | prescaler, | ||
uint16_t | target_count, | ||
uint8_t | int_level ) |
bool timer_type1_get_flag | ( | TC1_t * | timer | ) |
void timer_type1_reset_flag | ( | TC1_t * | timer | ) |
void timer_type1_set_counter | ( | TC1_t * | timer, |
uint16_t | counter ) |
void timer_type1_set_target | ( | TC1_t * | timer, |
uint16_t | target_count ) |
void timer_type1_stop | ( | TC1_t * | timer | ) |
void timer_type1_wait | ( | TC1_t * | timer, |
uint8_t | prescaler, | ||
uint16_t | target_count ) |
void wdt_disable | ( | void | ) |
void wdt_enable | ( | uint8_t | per | ) |
void wdt_reset_device | ( | void | ) |