hi
i want to use iic in my project ,and i add iic func to my project refrence project twi_sensor.
the code of iic like this:
i2c_config_t iic_config=
{
.scl_pin = I2C_CLK_PIN,
.sda_pin = I2C_SDA_PIN,
.freq = I2C_SPEED_400K,
};
void am_app_i2c_init (i2c_config_t i2c_config)
{
ret_code_t err_code;
nrf_drv_twi_frequency_t fre_table[]=
{
NRF_DRV_TWI_FREQ_100K,
NRF_DRV_TWI_FREQ_250K,
NRF_DRV_TWI_FREQ_400K,
};
const nrf_drv_twi_config_t twi_config = {
.scl = i2c_config.scl_pin,
.sda = i2c_config.sda_pin,
.frequency = fre_table[i2c_config.freq],
.interrupt_priority = APP_IRQ_PRIORITY_HIGH,
.clear_bus_init = false
};
err_code = nrf_drv_twi_init(&m_twi, &twi_config, twi_handler, NULL);
APP_ERROR_CHECK(err_code);
nrf_drv_twi_enable(&m_twi);
}
void am_i2c_send_data(uint8_t addr,uint8_t const * p_data, uint8_t length, bool no_stop)
{
ret_code_t err_code;
err_code = nrf_drv_twi_tx(&m_twi, addr, p_data, length, no_stop);
APP_ERROR_CHECK(err_code);
while (m_xfer_done == false);
}
I call the api in the main
port_i2c_init(); port_i2c_send(0xaa , data, 10);
then compile and download the hex to the chip,but the log show like this:
00> <error> app: ERROR 4 [NRF_ERROR_NO_MEM] at ..\..\..\..\..\..\components\libraries\timer\app_timer2.c:181 00> 00> PC at: 0x0003817F
the code of app_timer2.c:181 is
uint32_t err_code = app_sched_event_put(&timer_event,
sizeof(timer_event),
scheduled_timeout_handler);
some para like this:
#define NRF_QUEUE_ENABLED 1
#define SCHED_QUEUE_SIZE 20 /**< Maximum number of events in the scheduler queue. */
i try change the SCHED_QUEUE_SIZE to 40 and change the ram ,it is no effect. so what should i do to solve this problem ?
