这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何使用p1.4作为TLE9879上升沿的外部中断?

共2条 1/1 1 跳转至

如何使用p1.4作为TLE9879上升沿的外部中断?

工程师
2024-06-14 18:56:16     打赏

我想在 TLE9879 中使用引脚 1.4 作为上升沿的外部中断,我使用了以下配置:
第 1 步:SCU-> modpisel.bit.exint2is = 1;
第 2 步:SCU-> exicon0.bit.exint2 = 1;
第 3 步:SCU-> modien2.bit.exint2_en = 1;
第 4 步:SCU-> modien2.bit.exint2_en = 1;
这是我对 exint2 的配置。
而且我还在 'isr.c' 和 'isr_defines.h '中配置了中断函数。
但它没有奏效。




关键词: 外部     中断     TLE9879    

助工
2024-06-14 19:00:31     打赏
2楼

在TLE9879上使用引脚1.4作为上升沿的外部中断配置中,可能需要注意以下几点:

1.确保引脚配置正确:引脚1.4可能需要配置为输入模式,并使能其上拉或下拉电阻。检查相关的引脚配置寄存器。

2.确保外部中断配置正确

    • 确认modpisel寄存器和exicon寄存器的设置正确,以确保引脚1.4的中断功能使能,并配置为上升沿触发。

    • 确认中断使能寄存器modien2的配置。

    3.确保中断服务例程(ISR)配置正确:在isr.c和isr_defines.h中配置中断服务例程时,确保函数名称和中断向量表中的名称匹配。

    4.确认中断向量表配置正确:确保在中断向量表中正确配置了中断服务例程的地址。

    5.检查中断优先级设置:确认中断优先级配置正确,且不会被其他中断优先级更高的中断掩盖。

    6.检查硬件连接:确保外部信号正确连接到引脚1.4,且信号上升沿确实产生。

引脚配置:

// 配置引脚1.4为输入模式,并使能上拉电阻

PORT1->IOCR4 &= ~PORT_IOCR4_PC4_Msk;

PORT1->IOCR4 |= (0x02 << PORT_IOCR4_PC4_Pos);  // 设置引脚1.4为输入模式

PORT1->PDR1 &= ~PORT_PDR1_PD4_Msk;

PORT1->PDR1 |= (0x08 << PORT_PDR1_PD4_Pos);  // 使能上拉电阻


中断配置:

// 选择引脚1.4作为外部中断2的输入源

SCU->MODPISEL.bit.EXINT2IS = 0x1;  // EXINT2输入选择为引脚1.4


// 配置EXINT2为上升沿触发

SCU->EXICON0.bit.EXINT2 = 0x1;  // 上升沿触发


// 使能外部中断2

SCU->MODIEN2.bit.EXINT2_EN = 0x1;


中断服务例程配置

在isr_defines.h中:

// 定义EXINT2的中断服务例程

void EXINT2_IRQHandler(void);


在isr.c中:

#include "isr_defines.h"


// EXINT2的中断服务例程实现

void EXINT2_IRQHandler(void) {

    // 清除中断标志

    SCU->EXICLR.bit.EXINT2 = 1;

    // 用户自定义中断处理代码

}


中断向量表配置

确保中断向量表中正确配置了EXINT2的中断服务例程地址:

// 中断向量表中的EXINT2中断向量

void (* const g_pfnVectors[])(void) = {

    // 其他中断向量

    [EXINT2_IRQn] = EXINT2_IRQHandler,

};

调试建议

1.调试外部中断信号:使用示波器或逻辑分析仪检查引脚1.4的信号,确保有上升沿信号。

2.打印日志:在中断服务例程中加入日志打印,确认中断服务例程是否被调用。



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]