大家好、
我正在使用 CC2650 Launchpad。 连接到 cc2650模拟引脚的模拟传感器。
我想将传感器控制器的比较器用作中断。 当模拟输入变为高电平并且比较器触发 CPU 时(CPU 处于睡眠模式)。 CPU 将从睡眠模式唤醒。
如何在 Sensor Controller Studio 中使用比较器来配置模拟输入并获取触发信号?
任何帮助都将非常好。
谢谢、
Raj
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.
大家好、
我正在使用 CC2650 Launchpad。 连接到 cc2650模拟引脚的模拟传感器。
我想将传感器控制器的比较器用作中断。 当模拟输入变为高电平并且比较器触发 CPU 时(CPU 处于睡眠模式)。 CPU 将从睡眠模式唤醒。
如何在 Sensor Controller Studio 中使用比较器来配置模拟输入并获取触发信号?
任何帮助都将非常好。
谢谢、
Raj
感谢您的回复。
当引脚电压从阈值变为高电平时、我将使用 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 后传感器控制器任务为何卡住。
谢谢。
Raj
您好 Christin
是的、我初始化 i2c。
假设、
i2cFxn()
…
…
}
当我从 simpleBLEPeripheral 调用 i2cFxn()时,它的工作正常。 当我从传感器控制器任务调用 i2cFxn()时,它不起作用。
根据我的想法、任务从传感器控制器切换到 M3应用程序时可能会出现问题(simpleBLEPeripheral 任务)。
如果您可以在这种情况下为我提供帮助、请帮我。
谢谢
Raj