您好,
在协力控制卡上,我正在使用一些GPIO作为输出,并尝试在1秒计时器中断中切换它们以进行测试。
Int计数=0;
__interrupt void CPU_timer0_isr (void)
{
PieCtrlRegs.PIEACG.ALL = PIEACK_GROUP1;
COUNT++;
如果(count=1)
{
// GPIO高
GpioG1DataRegs.GPADAT.bit.GPIO23 =1;
GpioG1DataRegs.GPADAT.bit.GPIO25 =1;
GpioG1DataRegs.GPBDAT.bit.GPIO42 =1;
GpioG1DataRegs.GPBDAT.bit.GPIO45 =1;
GpioG1DataRegs.GPBDAT.bit.GPIO46 =1;
}
否则,如果(count = 2)
{
// GPIO低
GpioG1DataRegs.GPADAT.bit.GPIO23 =0;
GpioG1DataRegs.GPADAT.bit.GPIO25 =0;
GpioG1DataRegs.GPBDAT.bit.GPIO42 =0;
GpioG1DataRegs.GPBDAT.bit.GPIO45 =0;
GpioG1DataRegs.GPBDAT.bit.GPIO46 =0;
计数=0;
}
对于以上所有GPIO,我已 正确配置了DIR和Mux寄存器。 但GPIO仍无法切换。
我还使用了另一种切换GPIO的方法,如下所示
Int计数=0;
__interrupt void CPU_timer0_isr (void)
{
PieCtrlRegs.PIEACG.ALL = PIEACK_GROUP1;
GpioG1DataRegs.GPATOGLE.bit.GPIO23 =1;
GpioG1DataRegs.GPATOGLE.bit.GPIO25 =1;
GpioG1DataRegs.GPBTOGLE.bit.GPIO42 =1;
GpioG1DataRegs.GPBTOGLE.bit.GPIO45 =1;
GpioG1DataRegs.GPBTOGLE.bit.GPIO46 =1;
}
在这种方法中,GPIO23和GPIO25正在切换。但其他方法则没有。 另外,我在调试时观察到,在寄存器级别上,这些位没有得到切换。
请帮我解决这个问题。
此致,
Sandeep