This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 传感器控制器中断相关问题

Guru**** 2582405 points
Other Parts Discussed in Thread: CC2640

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/592884/sensor-controller-interrupt-related-issue

主题中讨论的其他器件:CC2640

大家好

当引脚电压从阈值变为高电平时、我将使用 ADC 窗口监控器传感器控制器示例代码生成 ADC 引脚中断。

现在、我可以成功地将传感器控制器驱动程序与 simpleBLEPeripheral 示例代码集成在一起、并且工作正常。

当 GPIO 电压变为高电平时 调用 scTaskAlertCallback()回调。

当我从 scTaskAlertCallback()调用 i2c 相关函数时,传感器控制器任务会卡住。

以下是我的代码:

void scTaskAlertCallback (void){

//唤醒操作系统任务
Semaphore_post (semaphore_handle (&semScTaskAlert));

//调用 i2c 函数,如 i2c_transfer (..)  -->传感器控制器任务卡住

}// scTaskAlertCallback

void taskFxn (UArg a0、UArg A1){
PIN_Handle hLedPins;

//启用 LED 引脚
hLedPins = PIN_OPEN (&ledPinState、pLedPinTable);

//初始化传感器控制器
scifOsalInit();
scifOsalRegisterCtrlReadyCallback (scCtrlReadyCallback);
scifOsalRegisterTaskAlertCallback (scTaskAlertCallback);
scifInit (&scifDriverSetup);
scifStartRtcTicksNow (0x00010000 / 8);

//配置并启动传感器控制器的 ADC 窗口监控任务(不要与操作系统任务混淆)
scifTaskData.adcWindowMonitor.cfg.adcWindowHigh = 800;
scifStartTasksNbl (BV (SCIF_ADC_WINDOW_MONITOR_TASK_ID));

//主循环
while (1){

//等待警报回调
Semaphore_pend (Semaphore_handle (&semScTaskAlert)、BIOS_wait_forever);

//清除警报中断源
scifClearAlertIntSource();

//确认警报事件
scifAckAlertEvents ();

}// taskFxn

您是否知道调用 i2c 相关 API 后传感器控制器任务为何卡住。

谢谢。

Mahesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mahesh 您好!

     请告知您在此测试中使用的器件类型(器件型号)或开发套件。

    ~Leonard  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用基于 CC2640的定制板。
    使用 BLE SDK v-2.01.01
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、当 ADC 值从阈值变为高电平时、我可以获得中断。 但蓝牙广告在10秒后停止。