大家好、
我有一个来自客户的问题。 请参阅下面的内容。
- 快速中断请求(FIQ)。 FAULT2 (引脚25)被映射到 FIQ、但它根本不会触发 FIQ ISR。 如果我将 Fault2映射到标准中断请求、则可以触发 ISR、并且一切都正确。 代码如下所示:
#define CIMINT_All_FAULT_PIN (0x40000000)// 30 故障引脚中断
…μ A
GioRegs.FAULTINTENA.bit.FLT2_INT_EN = 1;
GioRegs.FAULTOUT.bit.FLT2_OUT=1;
GioRegs.FAULTDIR.bit.FLT2_DIR = 0;
GioRegs.FAULTIN.bit.FLT2_IN = 0; //1 -故障引脚必须驱动为高电平。 0 -驱动为低电平以触发中断
GioRegs.FAULTINTPOL.bit.FLT2_INT_POL = 0; //将在1 =上升沿、0 =下降沿上生成中断
//write_reqmask (CIMINT_All_FAULT_PIN);
Write_firqpr (CIMINT_All_FAULT_PIN);
enable_interrupt ();
enable_fast_interrupt ();
如果我注释掉 write_firqpr 并返回 write_reqmask 指令、一切都将正常工作。 它似乎未启用 FIQ。 这是函数 enable_fast_interrupt ();
void enable_fast_interrupt (void)
{
Swi_single_entry (0、0、0、4);//代码为4;
}
- 除了 DPWM0和 DPWM1、我还尝试从引脚8输出 PWM、但无法从该引脚获取 PWM 信号。 引脚始终为低电平。 以下是我的初始化代码:
- TimerRegs.T16PWM0CMP0DAT.bit.CMP_DAT = 15870;//重置计数器的值
- TimerRegs.T16PWM0CMP1DAT.bit.CMP_DAT = 7935;//50%50比较器0的占空比一半
- TimerRegs.T16PWM0CMPCTRL.bit.CMP0_INT_ENA = 1; //启用比较0 (复位)中断
- TimerRegs.T16PWM0CMPCTRL.bit.PWM_OUT_ACTION0 = 1;//1用于清零引脚
- TimerRegs.T16PWM0CMPCTRL.bit.PWM_OUT_Action1 = 2;//2用于清零引脚
- TimerRegs.T16PWM0CNTCTRL.bit.CMP_RESET_ENA=1;//启用由 COMP 0复位
- TimerRegs.T16PWM0CMPCTRL.bit.PWM_OUT = 1;//确保默认值为0
- TimerRegs.T16PWM0CMPCTRL.bit.PWM_OUT_DRV = 1;//将零输入输出锁存器
- TimerRegs.T16PWM0CMPCTRL.bit.PWM_OUT_ENA = 1;//使能引脚作为输出
- TimerRegs.T16PWM0CNTCTRL.bit.SW_RESET = 1;//允许计数器运行
- 杂项 AnalogRegs.IOMUX.bit.EXT_TRIG_MUX_SEL=3;
- 杂项 AnalogRegs.IOMUX.bit.JTAG_CLK_MUX_SEL=0;
- 杂项 AnalogRegs.IOMUX.bit.SYNC_MUX_SEL=2;
我将 k 行更改为 m 行为不同的值、但它不起作用。
谢谢!
劳伦