Driver TWI/I2C - YouTube: Ciência Elétrica
Biblioteca Otimizada para Microcontroladores AVR
Carregando...
Procurando...
Nenhuma entrada encontrado
twi.h
Ir para a documentação desse arquivo.
1
7
8#ifndef TWI_H
9#define TWI_H
10
11#ifndef F_CPU
13#define F_CPU 16000000UL
14#endif
15
16#include "twi_types.h"
17#include "twi_config.h"
18#include <stddef.h>
26TWI_Status_t twi_init(TWI_Mode_t mode, uint8_t address, TWI_Clock_t clock);
27
31void twi_deinit(void);
32
37uint8_t twi_bus_is_free(void);
38
39/* --- Funções para Modo Master --- */
40
49TWI_Status_t twi_master_start_write(uint8_t slave_address, const uint8_t* data, size_t length);
50
58TWI_Status_t twi_master_start_read(uint8_t slave_address, uint8_t* data, size_t length);
59
69TWI_Status_t twi_master_start_write_read(uint8_t slave_address, const uint8_t* write_data, size_t write_length,
70 uint8_t* read_data, size_t read_length);
71
78
79/* --- Funções para Modo Slave --- */
80
87
94
100TWI_Status_t twi_master_start_probe(uint8_t slave_address);
101
106uint8_t twi_had_timeout(void);
107
116
122
127TWI_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);
128
129#endif // TWI_H
void on_complete(TWI_Status_t st, const uint8_t *data, size_t len)
Callback de conclusão para transações Master.
Definição example1.c:105
size_t on_transmit(uint8_t *buffer, size_t max_len)
Callback de transmissão (Slave -> Master).
Definição example2.c:115
void on_receive(const uint8_t *dados, size_t len)
Callback de recebimento (Master -> Slave).
Definição example2.c:97
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.
Definição twi.c:97
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.
Definição twi.c:103
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.
Definição twi.c:348
TWI_Status_t twi_master_start_probe(uint8_t slave_address)
Realiza um "ping" no endereço para verificar se o Slave está presente.
Definição twi.c:109
TWI_Status_t twi_slave_process(void)
Processa eventos pendentes no Slave.
Definição twi.c:385
TWI_Status_t twi_init(TWI_Mode_t mode, uint8_t address, TWI_Clock_t clock)
Inicializa o módulo TWI.
Definição twi.c:65
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.
Definição twi.c:361
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.
Definição twi.c:90
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.
Definição twi.c:332
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.
Definição twi.c:418
TWI_BusState_t twi_get_bus_status(void)
Retorna o estado atual do barramento.
Definição twi.c:390
TWI_BusState_t
Estados lógicos do barramento TWI.
Definição twi.h:111
@ TWI_BUS_ERROR
Definição twi.h:114
@ TWI_BUS_BUSY
Definição twi.h:113
@ TWI_BUS_IDLE
Definição twi.h:112
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.
Definição twi_types.h:54
TWI_Mode_t
Modos de operação do módulo TWI.
Definição twi_types.h:16
TWI_Status_t
Códigos de status e erro para operações TWI.
Definição twi_types.h:32
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.
Definição twi_types.h:62
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.
Definição twi_types.h:46
void(* TWI_Error_Callback_t)(TWI_Status_t error)
Callback genérico para tratamento de erros no barramento.
Definição twi_types.h:68
TWI_Clock_t
Frequências de clock (SCL) suportadas para o barramento.
Definição twi_types.h:24