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.

[参考译文] CCS/LAUNCHXL-CC1352P:CCS/LAUNCHXL-CC1352P:

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/849297/ccs-launchxl-cc1352p-ccs-launchxl-cc1352p

器件型号:LAUNCHXL-CC1352P

工具/软件:Code Composer Studio

在 SCS 中,我使用传感器处理程序 A 生成任务警报(IO 上升沿回调):

fwGenAlertInterrupt();

evhSetupGpioTrigger (0、AUXIO_I_EXT、EXT_INT_SET、EVH_GPIO_TRIG_ON_EDGE);

在 CCS 任务中、使用以下函数处理警报:

void scTaskAlertCallback (void)

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

//唤醒操作系统任务
platfromExtSensorEvent();

//确认警报事件

scifAckAlertEvents ();


}//

问题是 scTaskAlertCallback()被称为无限警报,即使清除了警报并且在 GPIO 上不生成中断。  

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

    Amit、您好!  

    是否 从事件处理程序代码调用 fwGenAlertInterrupt()? 请参阅 SCS 中的按钮去抖动器示例以及如何使用 GPIO 事件触发事件代码。  

    Simon

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

    您好、Simon、

    已在 我的平台上的 SCS 中遵循按钮去抖动器示例,但仍不清除警报中断,并且连续调用 scTaskAlertCallback()。

    如果我不使用 SCS 代码、则中断处理和清除工作 正常。

    void scTaskAlertCallback (void)
       //清除警报中断源
      scifClearAlertIntSource();
    //进行 smting;
      //确认警报事件
      scifAckAlertEvents ();
    }// scTaskAlertCallback
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Simon、

    我认为我发现了导致问题的原因:

    在 CPU 任务 (由  scTaskAlertCallback()发出信号)上 ,有一个到的调用:  GPIO_enableInt (Board_GPIO_INT_VOX)。

    Board_GPIO_INT_VOX 是触发 GPIO。

    看起来从  CPU 调用 GPIO_enableInt()会触发 SCS 事件处理程序。

    去除    对 GPIO_enableInt()的调用后, scTaskAlertCallback() 只调用一次,无法获取下一个中断。  

    有什么想法吗?  

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

    您好!  

    您似乎尝试从 CPU 和 SC 控制引脚。 引脚只能由 CPU 或 SC 分配。  

    Simon

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

    您好、Simon、

    明白了。 进行了相应修改。

    我的目标 PCB 使用4个不同的 GPIO 作为触发器。

    SCS 将 GPIO 事件触发器限制为3。

    如何使第4个 GPIO 的触发器处理程序?   

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

    如果您需要3个以上的事件、可以对一个事件"或"多个 GPIO。  

    Simon

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

    H Simon、

    我将所有 GPIO 映射到一个事件处理程序。

    在使用 evhGetActiveTrigger (bvEvent) 确定哪个事件索引 (GPIO)触发事件处理程序代码的事件处理程序上、

    但是索引限制为3。

    如果   4个 GPIO 可以触发、如何确定触发哪个事件索引(GPIO)?  

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

    这很不可能。  

    您需要多快的时间来处理中断? 一种替代方法是轮询每个引脚。