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

CC2640 丢失外部脉冲中断点

我这边用的2640,挂了一个ADS1292R采集芯片,用的外部中断,4K采样率。

用的是CC2640的simpleperipheral例程开发的,在现有的基础上加了一个任务,用于采集ADS1292R数据

void ECG_createTask(void)
{
Task_Params taskParams;
// Configure the ECG task
Task_Params_init(&taskParams);
taskParams.stack = myTaskStack;
taskParams.stackSize = sizeof(myTaskStack);
taskParams.priority = 5;
Task_construct(&myTask, ECG_taskFxn, &taskParams, NULL);

// Create the semaphore used to wait for ….
Semaphore_Params semParams;
Semaphore_Params_init(&semParams);
semParams.mode = Semaphore_Mode_BINARY;
Semaphore_construct(&semECGTask, 0, &semParams);

//Create the Msg Quene
Queue_Params queueParams;
Queue_Params_init(&queueParams);
Queue_construct(&ECGMsg,&queueParams);
ECGMsgQueue = Queue_handle(&ECGMsg);
//ECGMsg
Error_Block eb;
Error_init(&eb);
msg = (MsgObj *) Memory_alloc(NULL, NUMMSGS * sizeof(MsgObj), 0, &eb);
//allocation the Memory to DataRadyMsg and CloclkIntMsg;
DataRadyMsg =msg++;
CloclkIntMsg=msg;
}

还有一个外部中断的处理

///////////////////////////////////////
//ADS1292R_registerInt
//ADS1292R注册输入中断函数
//参数:硬件中断的callback函数
//返回:无
//注意:调用该函数前必须先调用PIN的初始化函数ADS129xR_Inial_GPIO
///////////////////////////////////////
void ADS1292R_registerInt(ptrFuc intFuc)
{
//Register ADS1292 ISR
PIN_registerIntCb(hADSPins, intFuc);
// Configure interrupt
PIN_setConfig(hADSPins, PIN_BM_IRQ, Board_ADS_DRDY | PIN_IRQ_NEGEDGE);
// Enable wakeup
//PIN_setConfig(hADSPins, PINCC26XX_BM_WaKEUP, Board_KEY_UP|PINCC26XX_WAKEUP_NEGEDGE);
}

现在测试只是在中断函数中翻转LED

void ECG_HwiIntFxn(PIN_Handle hPin, PIN_Id pinId)
{
//LED_toggle();
//DataRadyMsg->id=ECG_DATARDY_EVT;
//Queue_enqueue(ECGMsgQueue,(Queue_Elem*)DataRadyMsg);
//Semaphore_post(Semaphore_handle(&semECGTask));
LED_toggle();
}

问题:

会丢掉中断点,即有时候两个中断只执行的一次。而且波形宽宽窄窄很补齐。

不知道是系统的调度原因导致的,还是蓝牙的任务引起的。请大神解答。

xyz549040622:

注意ADS1292R的采集时间,我觉得是他引起的。外部中断是由什么触发的呢?

user432780221:

回复 xyz549040622:

我这个示波器图中根本没有读取ADS1292的数据,只是接收到中断后翻转LED。外部中断是由ADS1292R的DRDY引脚的下降沿触发

xyz549040622:

回复 user432780221:

奇怪,确实是没有触发中断。其他都能触发,看着信号都是一样的。只能解释为你触发的时间不够引起的了。放大这个触发信号看看

da qin zheng sheng:

或者设定中断优先级!

user432780221:

回复 da qin zheng sheng:

大神,谢谢提醒,确实是由于低功耗模式影响了这个。

david sun2:

回复 user432780221:

Qian Xue1

你好, 我有几个类似平台的问题, 能否和你私下交流一下。我的QQ号, 1992411019邮箱, you_sun@yahoo.com

真诚希望得到你的回复。

David Sun

xiao li7:

你好,我在做一个类似的设计,能参考一下你的代码吗

user432780221:

回复 xiao li7:

这个恐怕现在不太方便了。有什么问题可以拿出来讨论!

user432780221:

回复 david sun2:

 加你QQ了!

赞(0)
未经允许不得转载:TI中文支持网 » CC2640 丢失外部脉冲中断点
分享到: 更多 (0)