CH582 低功耗模試GPIO喚醒問題

版本信息:

CH58x_BLE_LIB_V1.30? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

MESH_LIB_V1.5? ? ? ?

配置信息:

// relay功能

#define CONFIG_BLE_MESH_RELAY? ? ? ? ? ? ? ? ? 0

// 代理功能

#define CONFIG_BLE_MESH_PROXY? ? ? ? ? ? ? ? ? 0

// GATT層配網(wǎng)功能

#define CONFIG_BLE_MESH_PB_GATT? ? ? ? ? ? ? ? 0

// FLASH存儲功能

#define CONFIG_BLE_MESH_SETTINGS? ? ? ? ? ? ? ?1

// 朋友節(jié)點功能

#define CONFIG_BLE_MESH_FRIEND? ? ? ? ? ? ? ? ?0

// 低功耗節(jié)點功能

#define CONFIG_BLE_MESH_LOW_POWER? ? ? ? ? ? ? 1

// config模型客戶端功能

#define CONFIG_BLE_MESH_CFG_CLI? ? ? ? ? ? ? ? 0

// health模型客戶端功能

#define CONFIG_BLE_MESH_HLTH_CLI? ? ? ? ? ? ? ?0


開啟了GPIO喚醒功能:

image.png

中斷處理:

image.png


問題:

????GPIO產(chǎn)生中斷可能正常進入,但打印不正常,打印的是亂碼,并且tmos的事件不處理。但再按一個鍵,打印就正確了。做一個5S的定時器,定時器一到,這個TMOS事件就會處理。即第一次錯,第二次正確,第三次錯,第四次正確。

下圖中的打印信息,紅色線是第一次中斷產(chǎn)生的,紅色線以下是第二次打印的,第二次正確了。

image.png


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

測得打印輸出的波特率偏低,在中斷內(nèi)加延時后,打印的數(shù)據(jù)正確了。但TMOS事件還是不會處理。


從你描述的這個現(xiàn)象,應(yīng)該是調(diào)用的協(xié)議棧的睡眠,第一次按鍵喚醒后又進入了idle模式,按鍵第二次才會喚醒,另外tmos任務(wù)是禁止在中斷中調(diào)用的,可以在中斷中置一個標(biāo)志,在主循環(huán)中查詢標(biāo)志來調(diào)用任務(wù)。


做低功耗設(shè)計。使用定時器喚醒也是可以解決這個問題的,但這不符合做低功耗設(shè)計的需求。有沒有方法在中斷中取消其進入idle模式?

還有,我只是在中斷中拋投event 消息,并不處理event事件,通常的操作系統(tǒng)都是可以這么做的,TMOS不可以這么做嗎?


我們的協(xié)議棧使用的是rtc喚醒的方式,在等待晶體起振的時候,使用idle模式能夠進一步降低功耗,如果使用gpio中斷的方式喚醒,可以調(diào)用相應(yīng)時間的延時來等待晶體起振,大概在1.5ms左右,

1646217444663604.png


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频