Updated Readme with example

This commit is contained in:
Sovichea Tep
2019-07-14 12:48:31 +07:00
parent 98308579ff
commit 34b88ad099
4 changed files with 225 additions and 7 deletions

39
twi/twi_master.h Normal file
View File

@@ -0,0 +1,39 @@
/*
* twi_master.h
*
* Created: 09-Jun-19 11:20:04 AM
* Author: TEP SOVICHEA
*/
#ifndef TWI_MASTER_H_
#define TWI_MASTER_H_
#include <avr/io.h>
#include <util/twi.h>
#include <stdbool.h>
#define DEBUG_LOG 0
#define SUCCESS 0
#define TW_SCL_PIN PORTC5
#define TW_SDA_PIN PORTC4
#define TW_SLA_W(ADDR) ((ADDR << 1) | TW_WRITE)
#define TW_SLA_R(ADDR) ((ADDR << 1) | TW_READ)
#define TW_READ_ACK 1
#define TW_READ_NACK 0
typedef uint16_t ret_code_t;
typedef enum {
TW_FREQ_100K,
TW_FREQ_250K,
TW_FREQ_400K
} twi_freq_mode_t;
void tw_init(twi_freq_mode_t twi_freq, bool pullup_en);
ret_code_t tw_master_transmit(uint8_t slave_addr, uint8_t* p_data, uint8_t len, bool repeat_start);
ret_code_t tw_master_receive(uint8_t slave_addr, uint8_t* p_data, uint8_t len);
#endif /* TWI_MASTER_H_ */