some minors fix
This commit is contained in:
parent
36d8e10279
commit
f135752523
4 changed files with 13 additions and 28 deletions
|
|
@ -64,7 +64,7 @@ static uint16_t read_reg(uint8_t addr, uint8_t reg)
|
||||||
static void write_reg(uint8_t addr, uint8_t reg, uint16_t val)
|
static void write_reg(uint8_t addr, uint8_t reg, uint16_t val)
|
||||||
{
|
{
|
||||||
//debug("Write %d: 0x%04x", reg, val);
|
//debug("Write %d: 0x%04x", reg, val);
|
||||||
uint8_t buf[3] = { val >> 8, val};
|
uint8_t buf[2] = { val >> 8, val};
|
||||||
if (i2c_slave_write(addr, ®, buf, 2, false))
|
if (i2c_slave_write(addr, ®, buf, 2, false))
|
||||||
debug("Could not write 0x%04x to register %d", val, reg);
|
debug("Could not write 0x%04x to register %d", val, reg);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,12 +49,9 @@ static uint8_t read_register(uint8_t reg)
|
||||||
|
|
||||||
static void update_register(uint8_t reg, uint8_t mask, uint8_t val)
|
static void update_register(uint8_t reg, uint8_t mask, uint8_t val)
|
||||||
{
|
{
|
||||||
uint8_t buf[2];
|
uint8_t buf = (read_register(reg) & mask) | val;
|
||||||
|
|
||||||
buf[0] = reg;
|
i2c_slave_write(ADDR, ®, &buf, 1, false);
|
||||||
buf[1] = (read_register(reg) & mask) | val;
|
|
||||||
|
|
||||||
i2c_slave_write(ADDR, &buf[0], &buf[1], 1, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ds1307_start(bool start)
|
void ds1307_start(bool start)
|
||||||
|
|
|
||||||
|
|
@ -93,15 +93,13 @@ int ds3231_setAlarm(uint8_t alarms, struct tm *time1, uint8_t option1, struct tm
|
||||||
*/
|
*/
|
||||||
bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag)
|
bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag)
|
||||||
{
|
{
|
||||||
uint8_t data[1];
|
uint8_t data;
|
||||||
|
|
||||||
/* get register */
|
/* get register */
|
||||||
// data[0] = addr;
|
if (!ds3231_recv(addr, &data, 1))
|
||||||
//if (ds3231_send(&addr, NULL, 0) && ds3231_recv(data, 1)) { //Test with ds3231_recv(addr, data, 1)
|
|
||||||
if (!ds3231_recv(addr,data, 1))
|
|
||||||
{
|
{
|
||||||
/* return only requested flag */
|
/* return only requested flag */
|
||||||
*flag = (data[0] & mask);
|
*flag = (data & mask);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -116,22 +114,20 @@ bool ds3231_getFlag(uint8_t addr, uint8_t mask, uint8_t *flag)
|
||||||
*/
|
*/
|
||||||
bool ds3231_setFlag(uint8_t addr, uint8_t bits, uint8_t mode)
|
bool ds3231_setFlag(uint8_t addr, uint8_t bits, uint8_t mode)
|
||||||
{
|
{
|
||||||
uint8_t data[1];
|
uint8_t data;
|
||||||
|
|
||||||
/* get status register */
|
/* get status register */
|
||||||
//if (ds3231_send(data, 1) && ds3231_recv(data+1, 1)) {
|
if (!ds3231_recv(addr, &data, 1))
|
||||||
if (!ds3231_recv(addr, data, 1))
|
|
||||||
{
|
{
|
||||||
/* clear the flag */
|
/* clear the flag */
|
||||||
if (mode == DS3231_REPLACE)
|
if (mode == DS3231_REPLACE)
|
||||||
data[0] = bits;
|
data = bits;
|
||||||
else if (mode == DS3231_SET)
|
else if (mode == DS3231_SET)
|
||||||
data[0] |= bits;
|
data |= bits;
|
||||||
else
|
else
|
||||||
data[0] &= ~bits;
|
data &= ~bits;
|
||||||
|
|
||||||
//if (ds3231_send(data, 2)) {
|
if (!ds3231_send(addr, &data, 1))
|
||||||
if (!ds3231_send(addr, data, 1))
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -220,7 +216,6 @@ bool ds3231_getRawTemp(int16_t *temp)
|
||||||
uint8_t data[2];
|
uint8_t data[2];
|
||||||
|
|
||||||
data[0] = DS3231_ADDR_TEMP;
|
data[0] = DS3231_ADDR_TEMP;
|
||||||
//if (ds3231_send(data, 1) && ds3231_recv(data, 2)) {
|
|
||||||
if (!ds3231_send(DS3231_ADDR_TEMP,data, 2))
|
if (!ds3231_send(DS3231_ADDR_TEMP,data, 2))
|
||||||
{
|
{
|
||||||
*temp = (int16_t)(int8_t)data[0] << 2 | data[1] >> 6;
|
*temp = (int16_t)(int8_t)data[0] << 2 | data[1] >> 6;
|
||||||
|
|
@ -258,13 +253,6 @@ bool ds3231_getTime(struct tm *time)
|
||||||
{
|
{
|
||||||
uint8_t data[7];
|
uint8_t data[7];
|
||||||
|
|
||||||
/* start register address
|
|
||||||
data[0] = DS3231_ADDR_TIME;
|
|
||||||
if (!ds3231_send(data, 1)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* read time */
|
/* read time */
|
||||||
if (ds3231_recv(DS3231_ADDR_TIME, data, 7))
|
if (ds3231_recv(DS3231_ADDR_TIME, data, 7))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ static uint8_t g_sda_pin;
|
||||||
|
|
||||||
inline bool i2c_status(void)
|
inline bool i2c_status(void)
|
||||||
{
|
{
|
||||||
return flag;
|
return started;
|
||||||
}
|
}
|
||||||
|
|
||||||
void i2c_init(uint8_t scl_pin, uint8_t sda_pin)
|
void i2c_init(uint8_t scl_pin, uint8_t sda_pin)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue