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)
|
||||
{
|
||||
//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))
|
||||
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)
|
||||
{
|
||||
uint8_t buf[2];
|
||||
uint8_t buf = (read_register(reg) & mask) | val;
|
||||
|
||||
buf[0] = reg;
|
||||
buf[1] = (read_register(reg) & mask) | val;
|
||||
|
||||
i2c_slave_write(ADDR, &buf[0], &buf[1], 1, false);
|
||||
i2c_slave_write(ADDR, ®, &buf, 1, false);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
uint8_t data[1];
|
||||
uint8_t data;
|
||||
|
||||
/* get register */
|
||||
// data[0] = addr;
|
||||
//if (ds3231_send(&addr, NULL, 0) && ds3231_recv(data, 1)) { //Test with ds3231_recv(addr, data, 1)
|
||||
if (!ds3231_recv(addr,data, 1))
|
||||
if (!ds3231_recv(addr, &data, 1))
|
||||
{
|
||||
/* return only requested flag */
|
||||
*flag = (data[0] & mask);
|
||||
*flag = (data & mask);
|
||||
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)
|
||||
{
|
||||
uint8_t data[1];
|
||||
uint8_t data;
|
||||
|
||||
/* 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 */
|
||||
if (mode == DS3231_REPLACE)
|
||||
data[0] = bits;
|
||||
data = bits;
|
||||
else if (mode == DS3231_SET)
|
||||
data[0] |= bits;
|
||||
data |= bits;
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
@ -220,7 +216,6 @@ bool ds3231_getRawTemp(int16_t *temp)
|
|||
uint8_t data[2];
|
||||
|
||||
data[0] = DS3231_ADDR_TEMP;
|
||||
//if (ds3231_send(data, 1) && ds3231_recv(data, 2)) {
|
||||
if (!ds3231_send(DS3231_ADDR_TEMP,data, 2))
|
||||
{
|
||||
*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];
|
||||
|
||||
/* start register address
|
||||
data[0] = DS3231_ADDR_TIME;
|
||||
if (!ds3231_send(data, 1)) {
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
/* read time */
|
||||
if (ds3231_recv(DS3231_ADDR_TIME, data, 7))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ static uint8_t g_sda_pin;
|
|||
|
||||
inline bool i2c_status(void)
|
||||
{
|
||||
return flag;
|
||||
return started;
|
||||
}
|
||||
|
||||
void i2c_init(uint8_t scl_pin, uint8_t sda_pin)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue