嗨DialogSupport,
我正在研究我正在研究I2C基础触摸传感器的项目。我使用DA14583 MCU和IQS333触摸传感器MCU设计了定制板。
我已经写了固件,现在我正在研究睡眠模式配置。首先,我遵循是定义/启用ARCH_EXT_SLEEP_ON。
const static sleep_state_t app_default_sleep_mode = arch_ext_sleep_on;
如果我运行代码,它会立即进入附加的SINPPET和
陷入assert_warning(0);线路尚未写入任何唤醒API功能。
void lld_sleep_compensate_func_patched(void)
{
uint32_t dur_us;
uint32_t slot_corr;
uint32_t fine_corr;
//获得低功耗睡眠周期的数量
uint32_t slp_period = ble_deepslstat_get();
// Sanity检查:睡眠的持续时间有限 //将睡眠持续时间转换为我们 //校正值从美国的睡眠持续时间推导出来 //开始纠正 if((development_debug)&&(use_power_optimizations)) } 请注意,我有一个来自传感器的RDY_PIN中断,每当有低脉冲时中断我的MCU(此脉冲每10ms中断MCU)并进入中断处理程序,以读取来自传感器的数据。 在调试时,我遇到了设备的行为,即在当时我获得I2C_RDY引脚中断传感器时,设备进入ASSERT_WARNING(0); 任何人都可以帮助我解决问题。如何根据需要调试此操作并工作。我迫切让我调试。 谢谢并恭祝安康
assert_err(slp_period
dur_us = lld_sleep_lpcycles_2_us_sel_func(slp_period);
slot_corr = dur_us / 625;
fine_corr = 624 - (dur_us%625);
如果(fine_corr == 0)
fine_corr = 1;
ble_basetimecntcorr_set(slot_corr);
ble_finecntcorr_set(fine_corr);
ble_deep_sleep_corr_en_setf(1);
{
slp_period_retated = slp_period;
//如果此断言命中,则LP ISR持续时间长于时间
//已通过LP_ISR_TIME_XTAL32_CYCLES和LP_ISR_TIME_USEC保留。
if(sleep_lp_cycles &&(sleep_lp_cycles
}
但是,如果我删除rdy_pin中断,则代码不会进入assert_warning(0);
rohit.
嗨rajapurerohit,
此断言可能意味着LP_HANLDER需要太多时间来执行和警告,即您的意味着它需要更多的时间才能唤醒计算值。请检查以前的线程:
https://support.dialog-seminile.com/forums/post/dialog-smartbond-bluetooth-low-energy-%2%80%93-software/some- tormal-sleep-mode.
谢谢,PM_DIALOG.