Driver TWI/I2C - YouTube: Ciência Elétrica
Biblioteca Otimizada para Microcontroladores AVR
Carregando...
Procurando...
Nenhuma entrada encontrado
twi_internal.h
Ir para a documentação desse arquivo.
1
8
#ifndef TWI_INTERNAL_H
9
#define TWI_INTERNAL_H
10
11
#include "
twi_types.h
"
12
#include <stdint.h>
13
#include <avr/io.h>
14
#include <avr/interrupt.h>
15
19
typedef
enum
{
20
TWI_STATE_IDLE
,
21
TWI_STATE_START
,
22
TWI_STATE_SLA_W
,
23
TWI_STATE_SLA_R
,
24
TWI_STATE_DATA_TX
,
25
TWI_STATE_DATA_RX
,
26
TWI_STATE_SLAVE_TX
,
27
TWI_STATE_STOP
,
28
TWI_STATE_ERROR
,
29
TWI_STATE_PROBE
30
}
TWI_State_t
;
31
37
typedef
struct
{
38
volatile
TWI_State_t
state
;
39
volatile
TWI_Status_t
status
;
40
uint8_t
slave_addr
;
41
const
uint8_t*
tx_buf
;
42
uint8_t*
rx_buf
;
43
size_t
tx_len
;
44
size_t
rx_len
;
45
size_t
tx_idx
;
46
size_t
rx_idx
;
47
49
TWI_Master_Complete_Callback_t
on_complete
;
51
TWI_Error_Callback_t
on_error
;
52
53
uint16_t
timeout_counter
;
54
uint16_t
timeout_limit
;
55
}
TWI_Transaction_t
;
56
61
extern
volatile
TWI_Transaction_t
g_twi_txn
;
// Global para ISR acessar
62
67
void
twi_handle_state
(
void
);
// Avan�a a FSM na ISR
68
69
/* --- Variáveis de Depuração --- */
70
#if (TWI_DEBUG_MODE == 1)
72
extern
volatile
uint8_t debug_twi_last_status;
74
extern
volatile
TWI_State_t
debug_twi_last_state;
76
extern
volatile
uint8_t debug_twi_counter;
77
#endif
78
79
#endif
// TWI_INTERNAL_H
TWI_Transaction_t
Estrutura de controle para a transação TWI ativa.
Definição
twi_internal.h:37
TWI_Transaction_t::state
volatile TWI_State_t state
Definição
twi_internal.h:38
TWI_Transaction_t::timeout_limit
uint16_t timeout_limit
Definição
twi_internal.h:54
TWI_Transaction_t::tx_buf
const uint8_t * tx_buf
Definição
twi_internal.h:41
TWI_Transaction_t::slave_addr
uint8_t slave_addr
Definição
twi_internal.h:40
TWI_Transaction_t::rx_buf
uint8_t * rx_buf
Definição
twi_internal.h:42
TWI_Transaction_t::on_complete
TWI_Master_Complete_Callback_t on_complete
Callback executado após o sucesso da transação.
Definição
twi_internal.h:49
TWI_Transaction_t::status
volatile TWI_Status_t status
Definição
twi_internal.h:39
TWI_Transaction_t::rx_idx
size_t rx_idx
Definição
twi_internal.h:46
TWI_Transaction_t::on_error
TWI_Error_Callback_t on_error
Callback executado em caso de erro ou timeout.
Definição
twi_internal.h:51
TWI_Transaction_t::timeout_counter
uint16_t timeout_counter
Definição
twi_internal.h:53
TWI_Transaction_t::rx_len
size_t rx_len
Definição
twi_internal.h:44
TWI_Transaction_t::tx_len
size_t tx_len
Definição
twi_internal.h:43
TWI_Transaction_t::tx_idx
size_t tx_idx
Definição
twi_internal.h:45
twi_handle_state
void twi_handle_state(void)
Gerenciador principal da Máquina de Estados.
Definição
twi.c:381
TWI_State_t
TWI_State_t
Estados da Máquina de Estados Finita (FSM) do TWI.
Definição
twi_internal.h:19
TWI_STATE_SLA_R
@ TWI_STATE_SLA_R
Definição
twi_internal.h:23
TWI_STATE_STOP
@ TWI_STATE_STOP
Definição
twi_internal.h:27
TWI_STATE_START
@ TWI_STATE_START
Definição
twi_internal.h:21
TWI_STATE_PROBE
@ TWI_STATE_PROBE
Definição
twi_internal.h:29
TWI_STATE_SLA_W
@ TWI_STATE_SLA_W
Definição
twi_internal.h:22
TWI_STATE_SLAVE_TX
@ TWI_STATE_SLAVE_TX
Definição
twi_internal.h:26
TWI_STATE_IDLE
@ TWI_STATE_IDLE
Definição
twi_internal.h:20
TWI_STATE_ERROR
@ TWI_STATE_ERROR
Definição
twi_internal.h:28
TWI_STATE_DATA_RX
@ TWI_STATE_DATA_RX
Definição
twi_internal.h:25
TWI_STATE_DATA_TX
@ TWI_STATE_DATA_TX
Definição
twi_internal.h:24
g_twi_txn
volatile TWI_Transaction_t g_twi_txn
Instância global da transação ativa.
Definição
twi.c:34
twi_types.h
Definições de tipos, enumerações e assinaturas de callback do driver TWI.
TWI_Status_t
TWI_Status_t
Códigos de status e erro para operações TWI.
Definição
twi_types.h:32
TWI_Master_Complete_Callback_t
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
TWI_Error_Callback_t
void(* TWI_Error_Callback_t)(TWI_Status_t error)
Callback genérico para tratamento de erros no barramento.
Definição
twi_types.h:68
inc
twi_internal.h
Gerado por
1.16.1 | Desenvolvido por
Tiago Henrique dos Santos - Ciência Elétrica