主题中讨论的其他器件:C2000WARE
工具/软件:Code Composer Studio
您好!
我目前正在进行一个小项目、以获得一些经验:
想法是使用一个按钮、当按下该按钮时、该按钮会将 LED 切换一次。
我将 GPIO7用于按钮(输入、带上拉电阻、按下时被拉至 GND)、将 GPIO1用于 LED (HIGH -> ON)。
我尝试使用 XINT1来检测负边沿、并使用中断例程来切换 GPIO 引脚。
首先、执行标准(InitSysCtrl、InitGpio、DINT、InitPieCtrl、InitPieVectTable、 EnableInterrupts)
我 的 X-Bar/Interrupt-setup 方法是:
void Interrupt_setup (void) { EALLOW; PieCtrlRegs.PIEIER1.bit.INTx14 = 1;//XINT1使能 XintRegs.XINT1CR.bit.ENABLE = 0x1;//启用 XintRegs.XINT1CR.bit.polarity = 0x2;//下降边沿 InputXbarRegs.INPUT4SELECT = 0x7; /GPIO7 EDIS; }
在"DefaultISR.c"中、我添加了:
中断空 XINT1_ISR (空) { GpioDataRegs.GPATOGGLE.bit.GPIO1=1; }
寄存器被置位(Debug->Registers)、但中断似乎没有被执行。
我是否错过了需要配置的寄存器、或者我的方法 是否完全错误?
如果需要更多信息、我很乐意提供!
提前感谢!
戴维·K.