TI中文支持网
TI专业的中文技术问题搜集分享网站

About Task Events in CC254x

各位大佬,

近来在进行Task Events设置时,发现在系统带的“hal_drivers.h”文件里面,有如下事件定义:

#define HAL_BUZZER_EVENT 0x0080
#define PERIOD_RSSI_RESET_EVT 0x0040
#define HAL_LED_BLINK_EVENT 0x0020
#define HAL_KEY_EVENT 0x0010

#if defined POWER_SAVING
#define HAL_SLEEP_TIMER_EVENT 0x0004
#define HAL_PWRMGR_HOLD_EVENT 0x0002
#define HAL_PWRMGR_CONSERVE_EVENT0x0001
#endif

而在我们自己建的项目对应的H文件(譬如"keyfobdemo.h")里面,也有一些事件定义,譬如:

// Key Fob Task Events
#define KFD_START_DEVICE_EVT0x0001
#define KFD_BATTERY_CHECK_EVT 0x0002
#define KFD_ACCEL_READ_EVT 0x0004
#define KFD_TOGGLE_BUZZER_EVT 0x0008
#define KFD_ADV_IN_CONNECTION_EVT 0x0010
#define KFD_POWERON_LED_TIMEOUT_EVT 0x0020

那么对于Task Event地址,就有两个事件("KFD_START_DEVICE_EVT"和"HAL_PWRMGR_CONSERVE_EVENT")同时指向同一事件地址了。况且这两个事件使用的频率还是比较高的,这样的话,两个事件会不会产生冲突呢?譬如一个事件正在调用过程中会不会另一个事件也正要调用它呢?

YiKai Chen:

如果两个事件是在同一個task ID而且同时指向同一事件地址是会产生冲突的

da qin zheng sheng:

把id修改一下吧!自己的事件优先级低一点。

Susan Yang:

同意YiKai Chen的说法。

更多具体信息可以参考 www.ti.com/…/swru271g.pdf 的第3章 www.ti.com/…/swru271g.pdf

user3840094:

回复 YiKai Chen:

上面那些设置可是例子自带的呢,不是我的设置

user3840094:

回复 da qin zheng sheng:

请问那16个TASK EVETS优先级是怎么设置的呢?

user3840094:

回复 Susan Yang:

呵呵,一般的情况下是不去看这些资料的,太多,万不得已才走这一步。看例子更加直观有针对性。一个芯片的N多功能只需要看我们用到的部分就行 — 例子就是这方面的最好资料了。谢谢。

YiKai Chen:

回复 user3840094:

所以你從原始碼可以看到一組是用keyfobapp_TaskID,一組是用Hal_TaskID

YiKai Chen:

回复 user3840094:

TASK EVETS沒有优先级,先進先處理

user3840094:

回复 YiKai Chen:

哦。我记得很久以前你们教过我怎么去设置这些TASK EVENTS, 但很少看见有设置高8位的事件譬如0x4000/0x0200之类。曾经在运行OK的程序里面这么试过,程序马上就乱套了!赶紧改回来,呵呵

赞(0)
未经允许不得转载:TI中文支持网 » About Task Events in CC254x
分享到: 更多 (0)