TI中文支持网
TI专业的中文技术问题咨询交流网站

CC2640R2F 自定义消息触发和事件触发

您好,请问CC2640R2F想自定义消息触发以及事件触发,要参考哪个例程?

Viki Shi:

GPIO中断触发吗?

梦与远方:

回复 Viki Shi:

是这样的,我使用GPTimer进行周期性的数据采集,在数据采集完成后通过消息关闭GPTimer资源并且通过事件将数据发送出去,然后500ms后再次开启GPTimer。

Viki Shi:

回复 梦与远方:

程序中是有多任务吗?可以考虑用信号量。参考:
dev.ti.com/…/tasks.html

YiKai Chen:

回复 梦与远方:

試試用semaphore

梦与远方:

回复 Viki Shi:

任务的话就两个吧,一个是周期性检测ADC,一个是周期性开关GPTimer进行数据读取。可能我之前的表述不准确,如果我想通过SimplePeriperal_processStackMsg函数来关闭GPTimer以及使用Event_post函数配合clock来发送数据和启动GPTimer要怎么做呢?您说的信号量我有看,但是没有弄明白要怎么使用

梦与远方:

回复 YiKai Chen:

semaphore这个我看过了,没看明白要怎么用?您那边有参考例程吗?

YiKai Chen:

回复 梦与远方:

dev.ti.com/…/node 有参考例程

梦与远方:

回复 YiKai Chen:

我在GPTimerCallback函数中添加队列消息,但是仿真过程中,程序无法进入GPTimer_enqueueMsg()函数,请问是因为不能在Callback函数中添加队列消息吗?

#define  GPTimer_MSG_GET_DATA_EVENT       0x0020

typedef struct{

appEvtHdr_t   hdr;

uint8_t            *pData;

}Msg_t;

static void GPTimerCallback(GPTimerCC26XX_Handle handle,GPTimerCC26XX_IntMask interruptMask)

{

GPTimer_enqueueMsg();

}

static void  GPTimer_enqueueMsg(void)

{

Queue_Handle appMsgQueue;

Event_Handle syncEvent;

Msg_t *pMsg = ICall_malloc(sizeof(Msg_t));

if (pMsg){

pMsg->hdr.event = GPTimer_MSG_GET_DATA_EVENT;

pMsg->hdr.state = NULL;

pMsg->pData = NULL;

Util_enqueueMsg(appMsgQueue,syncEvent,(uint8_t *)pMsg);

}

YiKai Chen:

回复 梦与远方:

我不確定在Callback函数中添加队列消息是否會有問題,但是建議你用semaphore試試

梦与远方:

回复 YiKai Chen:

semaphore和Event_pend不会冲突吗

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F 自定义消息触发和事件触发
分享到: 更多 (0)