ATxmega Core
Loading...
Searching...
No Matches
cpu.c File Reference
#include <avr/io.h>
#include <avr/interrupt.h>
#include "cpu.h"
Include dependency graph for cpu.c:

Functions

static int8_t clock_prescaler (uint32_t clock_freq)
 
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 eeprm_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)
 

Variables

static int16_t adc_A_offset = 180
 

Function Documentation

◆ adc_A_calibrate_offset()

void adc_A_calibrate_offset ( uint8_t index)

◆ adc_A_initialize_single_ended()

void adc_A_initialize_single_ended ( uint8_t analog_reference)

◆ adc_A_read_channel()

int16_t adc_A_read_channel ( uint8_t index)

◆ adcA_unsigned_single_ended()

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 )

◆ calculate_timer_16bits()

bool calculate_timer_16bits ( uint32_t f_cpu,
float freq,
uint8_t * timer_prescaler,
uint16_t * timer_target_count )

◆ clock_prescaler()

static int8_t clock_prescaler ( uint32_t clock_freq)
static

◆ cpu_change_clock()

bool cpu_change_clock ( uint32_t cpu_freq,
bool lock_clock )

◆ cpu_clk_output()

void cpu_clk_output ( bool stay_on_loop,
bool pin4_instead_of_7,
uint8_t out_port )

◆ cpu_config_clock()

bool cpu_config_clock ( uint32_t cpu_freq,
bool lock_clock,
bool external_clock )

◆ cpu_config_clock_32Khz()

void cpu_config_clock_32Khz ( uint8_t prescaler,
bool lock_clock )

◆ cpu_disable_int_level()

void cpu_disable_int_level ( uint8_t int_level)

◆ cpu_enable_int_level()

void cpu_enable_int_level ( uint8_t int_level)

◆ eeprm_is_busy()

bool eeprm_is_busy ( void )

◆ eeprom_rd_byte()

uint8_t eeprom_rd_byte ( uint16_t addr)

◆ eeprom_rd_i16()

int16_t eeprom_rd_i16 ( uint16_t addr)

◆ eeprom_rd_i32()

int32_t eeprom_rd_i32 ( uint16_t addr)

◆ eeprom_wr_byte()

void eeprom_wr_byte ( uint16_t addr,
uint8_t byte )

◆ eeprom_wr_i16()

void eeprom_wr_i16 ( uint16_t addr,
int16_t _16b )

◆ eeprom_wr_i32()

void eeprom_wr_i32 ( uint16_t addr,
int32_t _32b )

◆ io_pin2in()

void io_pin2in ( PORT_t * port,
uint8_t pin,
uint8_t pull,
uint8_t sense )

◆ io_pin2out()

void io_pin2out ( PORT_t * port,
uint8_t pin,
uint8_t out,
bool input_en )

◆ io_pin2out_with_interrupt()

void io_pin2out_with_interrupt ( PORT_t * port,
uint8_t pin,
uint8_t out,
uint8_t sense )

◆ io_set_int()

void io_set_int ( PORT_t * port,
uint8_t int_level,
uint8_t int_n,
uint8_t mask,
bool reset_mask )

◆ timer_type0_enable()

void timer_type0_enable ( TC0_t * timer,
uint8_t prescaler,
uint16_t target_count,
uint8_t int_level )

◆ timer_type0_get_flag()

bool timer_type0_get_flag ( TC0_t * timer)

◆ timer_type0_pwm()

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 )

◆ timer_type0_reset_flag()

void timer_type0_reset_flag ( TC0_t * timer)

◆ timer_type0_set_counter()

void timer_type0_set_counter ( TC0_t * timer,
uint16_t counter )

◆ timer_type0_set_target()

void timer_type0_set_target ( TC0_t * timer,
uint16_t target_count )

◆ timer_type0_stop()

void timer_type0_stop ( TC0_t * timer)

◆ timer_type0_wait()

void timer_type0_wait ( TC0_t * timer,
uint8_t prescaler,
uint16_t target_count )

◆ timer_type1_enable()

void timer_type1_enable ( TC1_t * timer,
uint8_t prescaler,
uint16_t target_count,
uint8_t int_level )

◆ timer_type1_get_flag()

bool timer_type1_get_flag ( TC1_t * timer)

◆ timer_type1_reset_flag()

void timer_type1_reset_flag ( TC1_t * timer)

◆ timer_type1_set_counter()

void timer_type1_set_counter ( TC1_t * timer,
uint16_t counter )

◆ timer_type1_set_target()

void timer_type1_set_target ( TC1_t * timer,
uint16_t target_count )

◆ timer_type1_stop()

void timer_type1_stop ( TC1_t * timer)

◆ timer_type1_wait()

void timer_type1_wait ( TC1_t * timer,
uint8_t prescaler,
uint16_t target_count )

◆ wdt_disable()

void wdt_disable ( void )

◆ wdt_enable()

void wdt_enable ( uint8_t per)

◆ wdt_reset_device()

void wdt_reset_device ( void )

Variable Documentation

◆ adc_A_offset

int16_t adc_A_offset = 180
static