13#define F_CPU 16000000UL
70 uint8_t* read_data,
size_t read_length);
void on_complete(TWI_Status_t st, const uint8_t *data, size_t len)
Callback de conclusão para transações Master.
size_t on_transmit(uint8_t *buffer, size_t max_len)
Callback de transmissão (Slave -> Master).
void on_receive(const uint8_t *dados, size_t len)
Callback de recebimento (Master -> Slave).
void twi_master_register_callbacks(TWI_Master_Complete_Callback_t on_complete, TWI_Error_Callback_t on_error)
Registra os callbacks de eventos para o modo Master.
void twi_slave_register_callbacks(TWI_Slave_Receive_Callback_t on_receive, TWI_Slave_Transmit_Callback_t on_transmit)
Registra os callbacks de eventos para o modo Slave.
TWI_Status_t twi_master_start_read(uint8_t slave_address, uint8_t *data, size_t length)
Inicia leitura assíncrona de dados como Master.
TWI_Status_t twi_master_start_probe(uint8_t slave_address)
Realiza um "ping" no endereço para verificar se o Slave está presente.
TWI_Status_t twi_slave_process(void)
Processa eventos pendentes no Slave.
TWI_Status_t twi_init(TWI_Mode_t mode, uint8_t address, TWI_Clock_t clock)
Inicializa o módulo TWI.
TWI_Status_t twi_master_start_write_read(uint8_t slave_address, const uint8_t *write_data, size_t write_length, uint8_t *read_data, size_t read_length)
Inicia uma transação combinada (Escrita seguida de Leitura) com Repeated Start.
uint8_t twi_had_timeout(void)
Verifica se a última transação foi abortada por tempo limite excedido.
void twi_deinit(void)
Desinicializa o módulo TWI, desligando o hardware e interrupções.
TWI_Status_t twi_master_start_write(uint8_t slave_address, const uint8_t *data, size_t length)
Inicia envio assíncrono de dados como Master.
uint8_t twi_bus_is_free(void)
Verifica se o barramento TWI está disponível para uma nova transação.
TWI_Status_t twi_master_write_read(uint8_t slave_addr, const uint8_t *tx_data, size_t tx_len, uint8_t *rx_data, size_t rx_len)
Versão síncrona/bloqueante de escrita seguida de leitura.
TWI_BusState_t twi_get_bus_status(void)
Retorna o estado atual do barramento.
TWI_BusState_t
Estados lógicos do barramento TWI.
Configurações estáticas do driver TWI.
Definições de tipos, enumerações e assinaturas de callback do driver TWI.
size_t(* TWI_Slave_Transmit_Callback_t)(uint8_t *data, size_t max_length)
Callback para o modo Slave: acionado quando o Master solicita dados.
TWI_Mode_t
Modos de operação do módulo TWI.
TWI_Status_t
Códigos de status e erro para operações TWI.
void(* TWI_Master_Complete_Callback_t)(TWI_Status_t status, const uint8_t *data, size_t length)
Callback de conclusão para o modo Master.
void(* TWI_Slave_Receive_Callback_t)(const uint8_t *data, size_t length)
Callback para o modo Slave: acionado após o recebimento de dados.
void(* TWI_Error_Callback_t)(TWI_Status_t error)
Callback genérico para tratamento de erros no barramento.
TWI_Clock_t
Frequências de clock (SCL) suportadas para o barramento.