mrigendra wrote on Monday, February 24, 2014:
I was creating a simple application to read an accelerometer chip as a task in freeRTOS.
The problem is while executing the twim task , it stucks in a while loop in the driver.
I am using SAM4l and atmel studio 6 .
to write or read there is a function call that takes the data to twim.c(the driver code) and in here the actual transfer is done.
There are three interrupts that NACK, write and read.
for read there is a sleep function in the twim driver if low power is enabled like this
#if TWIM_LOW_POWER_ENABLE
sleepmgr_lock_mode(SLEEPMGR_SLEEP_1);
while(!(transfer_status[twim_ch]) && ! (twim_get_status(twim) & TWIM_SR_IDLE))
{
sleepmgr_enter_sleep();
}
sleepmgr_unlock_mode(SLEEPMGR_SLEEP_1);
#else
while(!(transfer_status[twim_ch]) && !(twim_get_status(twim) & TWIM_SR_IDLE))
{}
#endif
/* disable master transfer */
...code to configure registers
for a simple read from accelerometer my code is stuck in read’s sleep function.
my code stuck in the if condition.
My query is
- Is freeRTOS fully twim compatible?
2)Are there any typical issues like this?