|
|
@ -204,13 +204,18 @@ int16_t SingleLeadECG_battery_get_adc_val() { |
|
|
|
static const nrf_drv_twi_t m_eeprom_twi_master = NRF_DRV_TWI_INSTANCE(EEPROM_I2C_INSTANCE); |
|
|
|
|
|
|
|
void SingleLeadECG_eeprom_init() { |
|
|
|
const nrf_drv_twi_config_t config = { |
|
|
|
.scl = EEPROM_I2C_SCL_M, |
|
|
|
.sda = EEPROM_I2C_SDA_M, |
|
|
|
.frequency = NRF_DRV_TWI_FREQ_100K, |
|
|
|
.interrupt_priority = APP_IRQ_PRIORITY_HIGH, |
|
|
|
.clear_bus_init = false, |
|
|
|
}; |
|
|
|
nrf_drv_twi_config_t config = NRF_DRV_TWI_DEFAULT_CONFIG; |
|
|
|
|
|
|
|
config.scl = EEPROM_I2C_SCL_M; |
|
|
|
config.sda = EEPROM_I2C_SDA_M; |
|
|
|
config.frequency = NRF_DRV_TWI_FREQ_100K; |
|
|
|
// { |
|
|
|
// .scl = EEPROM_I2C_SCL_M, |
|
|
|
// .sda = EEPROM_I2C_SDA_M, |
|
|
|
// .frequency = NRF_DRV_TWI_FREQ_100K, |
|
|
|
// .interrupt_priority = APP_IRQ_PRIORITY_HIGH, |
|
|
|
// .clear_bus_init = false, |
|
|
|
// }; |
|
|
|
|
|
|
|
ZERROR_CHECK(nrf_drv_twi_init(&m_eeprom_twi_master, &config, NULL, NULL)); |
|
|
|
nrf_drv_twi_enable(&m_eeprom_twi_master); |
|
|
@ -233,8 +238,8 @@ static void assign_i2c_add(uint32_t add, bool wr, uint8_t *i2cadd, uint8_t *mema |
|
|
|
*i2cadd = 0xA0; |
|
|
|
uint8_t a16a17 = (add >> 16) & 0x03; |
|
|
|
*i2cadd |= a16a17 << 1; |
|
|
|
*i2cadd = *i2cadd >>1; |
|
|
|
|
|
|
|
*i2cadd = wr ? *i2cadd & 0xFE : *i2cadd | 0x01; |
|
|
|
|
|
|
|
*memadd0 = add >> 8; |
|
|
|
*memadd1 = add & 0xFF; |
|
|
@ -246,6 +251,7 @@ void SingleLeadECG_eeprom_write(uint16_t page, uint8_t *data, uint16_t len) { / |
|
|
|
uint8_t deviceSelect = 0; |
|
|
|
|
|
|
|
assign_i2c_add(addr, true, &deviceSelect, &eeprom_cache[0], &eeprom_cache[1]); |
|
|
|
memcpy(&eeprom_cache[2], data, len); |
|
|
|
ret_code_t ecode = nrf_drv_twi_tx(&m_eeprom_twi_master, deviceSelect, eeprom_cache, len + 2, false); |
|
|
|
if (ecode != NRF_SUCCESS) { |
|
|
|
ZLOGE("nrf_drv_twi_tx error %x", ecode); |
|
|
|