主题:controlSUITE中讨论的其他部件
您好,
我已为以下 寄存器实施寄存器卡住失败检查代码:
SCI,PIE,SPI,EPWM1,EPWM2, EPWM3,ADC,GPIO,ECAP1,ECAP2, EQEP1,EQEP2,外部中断寄存器。 我正在使用controlSUITE中提供的测试代码,其中 为每个寄存器准备了2个模式,如果 寄存器能够写入这些模式,则测试 被声明为成功。 我 已经准备 了一个用于测试的函数,并且在 PLL和时钟初始化后,我主要调用了此函数。 另外,在开始测试这些寄存器之前,我正在通过在 测试完成后写入DINT和写入EINT来禁用全局中断。 这很正常。
现在我的要求是每隔1秒测试这些寄存器 因此,我在初始化硬件和固件后,在1秒内调用此寄存器测试功能。 尽管所有状态寄存器都设置为只读,但某些寄存器仍出现故障。 我能看到的原因是,除了状态寄存器之外,有些寄存器有一个特定的位,该位是在启用中断后设置的,它只能由硬件清除。
例如:
外围设备= SCI A,寄存器名称= SCIFFTX,位7:TXFFINT标志-只读
此寄存器的模式= 0xA02A,写入模式后寄存器中的实际值= 0xA0AA,测试结果=失败
每个寄存器的模式都是这样形成的:只读位0写入,r/w位1写入。 但是由于中断导致设置了位7,因此不允许 清除它,因此寄存器测试失败。
您建议如何定期测试这些寄存器? 此测试仅在开机时工作一次。 请回复。