CH571F 作為藍(lán)牙主機(jī)時(shí)TMOS系統(tǒng)時(shí)鐘不對

使用了 CH573EVT\EVT\EXAM\BLE\Central 例程, 在設(shè)置事件執(zhí)行的超時(shí)時(shí)間較大的時(shí)候似乎不會執(zhí)行, 比如添加下圖中的

tmos_start_task(?halTaskID,?HAL_TEST_EVENT,?1600?);

image.png

但是將參數(shù)改小, 比如16的時(shí)候

tmos_start_task(?halTaskID,?HAL_TEST_EVENT,?16?);????//?添加一個(gè)測試任務(wù)

能正常進(jìn)回調(diào)

之后為了測試回調(diào)超時(shí)準(zhǔn)確性, 在硬件層事務(wù)處理函數(shù)中更改下部分

image.png

使用串口查看工具, 開啟時(shí)間戳顯示, 發(fā)現(xiàn)并不是很對

image.png

雖然給的是超時(shí)28ms, 但是實(shí)際上是?2.66秒

算了兩個(gè), 給的參數(shù)和實(shí)際時(shí)間的比值基本差不多


那開頭的

tmos_start_task(?halTaskID,?HAL_TEST_EVENT,?1600?);

跑不了其實(shí)應(yīng)該是不對的, 只是系統(tǒng)時(shí)基不對, 給的參數(shù)為1600, 但是實(shí)際并不是1秒, 按照上方的比例關(guān)系實(shí)際為94.999秒

實(shí)際也確實(shí)在運(yùn)行較長時(shí)間后進(jìn)事件處理


測試了一下RTC, 在死循環(huán)發(fā)送秒

__attribute__((section(".highcode")))
__attribute__((noinline))?void
Main_Circulation()
{
????static?uint16_t?s;
????while?(1)
????{
????????TMOS_SystemProcess();
????????RTC_GetTime(0,?0,?0,?0,?0,?&s);
????????PRINT("%u?",?s);
????}
}

發(fā)送的數(shù)據(jù)為RTC的秒, 這個(gè)數(shù)據(jù)在經(jīng)過非常長的時(shí)間后變成了1


看到一個(gè)帖子, 感覺是同樣的問題

http://m.findthetime.net/bbs/thread-72642-1.html

我目前手里沒有ch573, 不好說在573上是否能正常使用


藍(lán)牙從機(jī)例程上測試沒有問題, TMOS的系統(tǒng)時(shí)鐘是挺準(zhǔn)的

好像解決了, 外部32.768KHz晶振沒起振, 芯片引腳虛焊, 重新著重焊了一下低速晶振的那兩個(gè)腳就行了


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

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