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.

[参考译文] AM2634:无法从编码器输入触发中断

Guru**** 2747375 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1601072/am2634-unable-to-fire-interrupts-from-an-encoder-input

器件型号: AM2634
主题: SysConfig 中讨论的其他器件

我无法配置 PRO_PRU1_GPIO19 (D15) 以在上升沿触发中断。 image.png
我认为这会将该引脚配置为具有上升沿触发。
image.png
我认为这会配置组中断(我的 SDK 似乎不支持单个引脚中断)。
image.png
我的 init 报告硬件中断的构造成功、但在打开编码器时不会触发该中断。

我知道这些引脚正从我的主循环中的调试日志记录正确读取编码器输出、只是为了计算旋转速度或检测旋转方向、未按预期检测到上升沿。
image.png

ENCODER_DEMO.c 

什么是我的缺失?

谢谢!

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

    您好、James:

    请注意,由于假日季,回复可能会有一些延迟。  

     此致、

    Aishwarya

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

    我也去过假日季,但我现在又回来了。 对此有何看法?

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

    你好,詹姆斯,这是你的例子,测试,我可以尝试在我的最后复制这个

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

    我从 gpio_multi_led_blink 示例开始、但上面附加的.c 文件包含我现在正在调用的函数。 不过、一些 SysConfig、当然还有 SDK 仍然来自该示例。

    这是我的 main.c:

    #include <stdlib.h>
    #include "ti_drivers_config.h"
    #include "ti_board_config.h"
    
    void gpio_multi_led_blink_main(void *args);
    
    void encoder_demo_main(void *args);
    
    void encoder_gpio_interrupt_init(void *args);
    
    void encoder_gpio_interrupt_init_force(void *args);
    
    void Gpio120_RisingEdgeInt_Init(void);
    
    int main(void)
    {
        System_init();
        Board_init();
    
        //gpio_multi_led_blink_main(NULL);
        encoder_gpio_interrupt_init(NULL);   // set up GPIO119 interrupt
        //encoder_gpio_interrupt_init_force(NULL);
        encoder_demo_main(NULL);
    
        Board_deinit();
        System_deinit();
    
        return 0;
    }


    谢谢!

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

    当然、James、让我试着复制一下、下周初回来、

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

    我现在至少有中断触发。 最终解决问题的变革正在呼唤  

    drivers_open()
    固定输出代码。