26volatile IntervalTimer
myTimer = IntervalTimer();
static void configure(uint8_t id, uint8_t config, uint8_t data)
static void send_packet(uint8_t id, uint32_t data, uint8_t header)
static void configure(uint8_t id, uint8_t config, uint8_t data)
static void configure(uint8_t id, uint8_t config, uint8_t data)
static void process_packet(uint8_t id, uint8_t device_address, uint8_t register_address, uint8_t data_ms, uint8_t data_ls)
static void send_packet(uint8_t id, uint32_t data)
static void configure(uint8_t id, uint8_t config_option, uint8_t data)
void exec_instruction(packet_t *instruction, bool is_ISR_call)
void exec_timed_commands()
volatile bool exec_active
void read_time(bool is_ISR_call)
void set_time_offset(uint32_t offset)
volatile IntervalTimer myTimer
void send_output_ring_buffer()
void set_read_on_request(uint8_t state)
volatile packet_t input_ring_buffer[INPUT_BUFFER_SIZE]
volatile unsigned long offset_time
void send_input_ring_buffer()
void send_output_ring_buffer_last(bool conf)
void error_message(uint8_t error_header, uint8_t source_header, uint32_t value, uint8_t sub_source_header)
volatile uint16_t input_ring_buffer_start
void send_data32(uint8_t header, uint32_t value, bool is_confirmation)
volatile uint16_t input_ring_buffer_next_free
void send_input_ring_buffer_free_spots()
void error_message_bypass_buffer(uint8_t error_header, uint8_t source_header, uint32_t value, uint8_t sub_source_header)
packet_t copy_packet(volatile packet_t *in)
@ IN_CONF_ASYNC_FROM_CHIP6
@ IN_CONF_ASYNC_FROM_CHIP5
@ IN_CONF_ASYNC_FROM_CHIP2
@ IN_CONF_ASYNC_FROM_CHIP0
@ IN_CONF_ASYNC_FROM_CHIP3
@ IN_CONF_ASYNC_FROM_CHIP7
@ IN_CONF_READ_ON_REQUEST
@ IN_FREE_INSTRUCTION_SPOTS
@ IN_CONF_ASYNC_FROM_CHIP1
@ IN_CONF_ASYNC_FROM_CHIP4
@ OUT_ERROR_UNKNOWN_INSTRUCTION
@ OUT_ALIGN_SUCCESS_VERSION
void read_pin(uint8_t id)
void set_pin(uint8_t id, uint32_t data)
void configure_pin(uint8_t instruction, uint8_t data)
uint8_t component_address
#define INPUT_BUFFER_SIZE