在TDA4 main domain R5F1_0上需要开发两个GPIO脚的外部输入中断

目前在TDA4 main domain R5F1_0上需要开发两个GPIO脚的外部输入中断,这两个pin脚的ball name分别为 AB23 和 AG27,但是TI的AUTOSAR MCAL不支持ICU相关的配置,因此只能手动去调用sciclient接口去配置中断和GPIO。

目前不知道怎么配,PDK包中的example也没有相关的功能,目前有许多疑问:
疑问1: AB23和AG27这两个引脚都是一个bank的,TI的手册上写着同一个bank的引脚,中断回调都是同一个入口,如果要做成两个单独的中断回调函数是否不支持?
疑问2:pin脚和中断号以及中断回调函数如何用sciclient接口进行捆绑?
疑问3:外部输入的边沿的捕获触发条件如何设置?
疑问4:能不能用这两个引脚做个sample给我看看?

目前用的是CCS10.0的编译器,AUTOSAR操作系统(vector),SDK7.1

对于同一个bank的引脚,中断回调函数是同一个入口的。如果您需要实现两个单独的中断回调函数,可以在中断回调函数中判断触发中断的引脚,然后进行不同的处理。

您可以使用Sciclient_rmIrqSet()函数来将中断号和中断回调函数绑定到GPIO引脚上。该函数的第一个参数为中断号,第二个参数为中断回调函数,第三个参数为中断类型,第四个参数为引脚ID。例如,以下代码可以将AB23引脚的GPIO中断绑定到中断号为10的中断上:

arduino

int32_t irqNum = 10; // 中断号
uint32_t gpioIndex = 0; // GPIO索引
uint32_t gpioPinNum = 23; // GPIO引脚号
Sciclient_rmIrqSet(irqNum, gpioCallback, CSL_RM_IRQ_CFG_TYPE_GPIO_INTR_LEVEL_HIGH_FALLING, CSL_GIC0_INTR_GPIO0_B0_INTROUTER0_OUTP_0 + gpioIndex * 32 + gpioPinNum);
其中,gpioCallback为您定义的中断回调函数,CSL_RM_IRQ_CFG_TYPE_GPIO_INTR_LEVEL_HIGH_FALLING表示在高电平和下降沿触发中断,CSL_GIC0_INTR_GPIO0_B0_INTROUTER0_OUTP_0为AB23引脚对应的中断输出端口。

外部输入的边沿捕获触发条件可以通过配置中断的触发方式来实现。您可以选择上升沿触发、下降沿触发或者边沿触发等方式。例如,以下代码可以将AB23引脚的GPIO中断设置为上升沿触发:

scss

int32_t irqNum = 10; // 中断号
Sciclient_rmIrqControl(irqNum, CSL_RM_IRQ_CFG_TRIGGER_TYPE, CSL_RM_IRQ_CFG_TRIGGER_TYPE_LEVEL_HIGH);
您可以使用以下代码来初始化AB23和AG27引脚的GPIO功能,并将它们设置为输入模式:


int32_t ret;
uint32_t gpioIndex;
gpioIndex = 0; // GPIO索引

/* 初始化GPIO模块 */
GPIO_init();

/* 配置AB23和AG27引脚为GPIO输入 */
ret = GPIO_setConfig(gpioIndex, 23, GPIO_CFG_IN_INT_RISING);
ret = GPIO_setConfig(gpioIndex, 27, GPIO_CFG_IN_INT_RISING);

然后,您可以使用上述代码中提到的Sciclient_rmIrqSet()函数将中断回调函数绑定到AB23和AG27引脚的GPIO中断上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Usinian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值