nodemcu-firmware/components/modules/i2c_common.h

38 lines
1.1 KiB
C

#ifndef _NODEMCU_I2C_COMMON_H_
#define _NODEMCU_I2C_COMMON_H_
#include "lauxlib.h"
typedef enum {
I2C_ID_SW = 0,
I2C_ID_HW0,
I2C_ID_HW1,
I2C_ID_MAX
} i2c_id_type;
// ***************************************************************************
// Hardware master prototypes
//
void li2c_hw_master_init( lua_State *L );
int li2c_hw_master_setup( lua_State *L, unsigned id, unsigned sda, unsigned scl, uint32_t speed, unsigned stretchfactor );
void li2c_hw_master_start( lua_State *L, unsigned id );
void li2c_hw_master_stop( lua_State *L, unsigned id );
int li2c_hw_master_address( lua_State *L, unsigned id, uint16_t address, uint8_t direction, bool ack_check_en );
void li2c_hw_master_write( lua_State *L, unsigned id, uint8_t data, bool ack_check_en );
void li2c_hw_master_read( lua_State *L, unsigned id, uint32_t len );
int li2c_hw_master_transfer( lua_State *L );
// ***************************************************************************
// Hardware slave prototypes
//
extern LROT_TABLE(li2c_slave);
void li2c_hw_slave_init( lua_State *L );
#endif /*_NODEMCU_I2C_COMMON_H_*/