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.
我在 HET IDE 中有以下代码。 它检查 n2HET1[18]引脚是高电平还是低电平、我想相应地设置/清除 N2HET1[8]。 我正在使用 ECMP 指令引脚操作来设置/清除引脚。 下面的代码显示了之后的仿真器、但在实际硬件上运行、它不会触发(我正在使用 N2HET1[8]作为 MIBSPI 传输组的触发源。
L00 CNT{NEX=CheckLow、REG=T、COMP=EQ、max=0x1FFFFFF、data=0x1FFFFFF};
CheckLow BR{NEX=SetLow、COND_addr=CheckHigh、PIN=18、EVENT_HIGH};
SetLow ECMP{next=NextInLine、control=on、en_pin_action=on、con_addr=NextInLine、pin=8、action=clear、reg=a、IRQ=off、data=0};
CheckHigh BR{NEX=SetHigh、COND_addr=NextInLine、PIN=18、EVENT=LOW};
SetHigh ECMP{next=NextInLine、control=on、en_pin_action=on、con_addr=NextInLine、pin=8、action=set、reg=a、data=0};
NextInLine PWCNT{next=0、con_addr=0、pin=0、reg=a、data=0};
你好 Nino、
在 HALCoGen 中、启用了 NHET 模块
2.配置引脚复用以使用 NHET 引脚
3.将 NHET 引脚18配置为输入,引脚0和引脚8配置为输出
4.将一个过去 NHET IDE 生成 的 C 代码复制到 HET.c 作为一个数据数组:
HET_MEMORY CONST HET_INIT0_PST[6]=
{
/* L00_0 */
{
0x00002C80、
0x01FFFFFF、
0xFFFFFF80、
0x00000000
}、
/* CheckLow_0 */
{
0x00005A00、
0x000072E0、
0x00000000、
0x00000000
}、
/* SetLow_0 */
{
0x0000A000、
0x0440A800、
0x00000000、
0x00000000
}、
/* CheckHigh_0 */
{
0x00009A00、
0x0000B2C0、
0x00000000、
0x00000000
}、
/* SetHigh_0 */
{
0x0000A000、
0x0440A810、
0x00000000、
0x00000000
}、
/* NextInLine_0 */
{
0x000014C0、
0x00000000、
0x00000000、
0x00000000
}
};
5.修改 hetInit()函数中的以下代码,将 NHET 代码编程到 NHET RAM 中
更改: (void) memcpy ((void *) hetRAM1、(const void *) het1PROGRAM、sizeof (het1PROGRAM);
更改为 :(void) memcpy ((void *) hetRAM1、(const void *) HET_INIT0_PST、sizeof (HET_INIT0_PST);
6.编译项目并将代码加载到闪存中
7.在主函数中 hetInit()旁边的行添加断点
8.打开内存浏览器,检查 NHET RAM 中的内容,从0xFF460000开始,并确保代码被正确复制到此位置。
我创建了 NHET 汇编代码来正确遵循输入引脚的状态并在 NHET1[8]引脚上生成正确的信号、我能够使用一个外部信号来触发 MIBSPI。
我到目前为止看到的问题、
现在、我可以执行我的实施了。