您好!
我目前正在编写 custim N2HET 程序来监控输入信号。 此时、我将尝试让中断为特定指令工作。
为了简单起见、N2HET 程序只包含2条指令、生成一个恒定 PWM 输出信号:
L01 CNT{NEX=L02、REG=A、IRQ=ON、DATA=0、max=1、 请求= NOREQ};
L02 MCMP{NEX=L01、REQUESE=NOREQ、hr_LR=HIGH、en_PIN_ACTION = ON、COND_addr=L01、PIN=1、order=REG_GE_DATA、action=PULSEHI、RE=A、IRQ=OFF、DATA=1、hr_DATA=1};
它们被转换为 C 结构、如(HET IDE):
{
/* L01_0 */
{
0x00002C21、
0x00000001、
0x00000000、
0x00000000
}、
/* l02_0 */
{
0x00000000、
0x00400158、
0x00000081、
0x00000000
}
};
将此代码加载到 N2HET RAM 区域会导致我所期望的行为、即引脚 N2HET[1]上的恒定 PWM 信号。
奇怪的是、在设置 GLBCTRL 寄存器的"到"位后、我在通道11上接收到中断。 我会在通道10上产生中断(NHET1高电平中断)、但情况并非如此(HET TU1 0级中断)。 下面是在 ARM 矢量 IRQ (地址0x00000018)中设置断点时的寄存器值:
VIM 寄存器:
N2HET1寄存器:
最后是 RAM @0xFF460000的内容:
我不明白这里发生了什么。 我希望通过在指令的控制字段(位27:28)中设置请求类型参数来接收 HTU 通知、但显然情况并非如此。
提前感谢您的反馈、并随时询问我是否可以提供任何其他信息。
纪尧姆


