|
|
@@ -216,6 +216,12 @@ static int l_i2c_setup(lua_State *L)
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
+void i2c_soft_setup(luat_ei2c_t *ei2c){
|
|
|
+ luat_gpio_mode(ei2c->scl, Luat_GPIO_OUTPUT, Luat_GPIO_PULLUP, 1);
|
|
|
+ luat_gpio_mode(ei2c->sda, Luat_GPIO_OUTPUT, Luat_GPIO_PULLUP, 1);
|
|
|
+ i2c_soft_stop(ei2c);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
新建一个软件i2c对象
|
|
|
@api i2c.createSoft(scl,sda,delay)
|
|
|
@@ -245,9 +251,7 @@ static int l_i2c_soft(lua_State *L)
|
|
|
else {
|
|
|
ei2c->udelay = 5;
|
|
|
}
|
|
|
- luat_gpio_mode(ei2c->scl, Luat_GPIO_OUTPUT, Luat_GPIO_PULLUP, 1);
|
|
|
- luat_gpio_mode(ei2c->sda, Luat_GPIO_OUTPUT, Luat_GPIO_PULLUP, 1);
|
|
|
- i2c_soft_stop(ei2c);
|
|
|
+ i2c_soft_setup(ei2c);
|
|
|
luaL_setmetatable(L, LUAT_EI2C_TYPE);
|
|
|
return 1;
|
|
|
}
|
|
|
@@ -905,12 +909,12 @@ static const rotable_Reg_t reg_i2c[] =
|
|
|
|
|
|
|
|
|
{ "scan", ROREG_FUNC(l_i2c_scan)},
|
|
|
- { "HSMODE", ROREG_INT(3)},
|
|
|
- { "PLUS", ROREG_INT(2)},
|
|
|
+ { "HSMODE", ROREG_INT(I2C_SPEED_HSMODE)},
|
|
|
+ { "PLUS", ROREG_INT(I2C_SPEED_PLUS)},
|
|
|
//@const FAST number 高速
|
|
|
- { "FAST", ROREG_INT(1)},
|
|
|
+ { "FAST", ROREG_INT(I2C_SPEED_FAST)},
|
|
|
//@const SLOW number 低速
|
|
|
- { "SLOW", ROREG_INT(0)},
|
|
|
+ { "SLOW", ROREG_INT(I2C_SPEED_SLOW)},
|
|
|
{ NULL, ROREG_INT(0) }
|
|
|
};
|
|
|
|