工具/软件:TI-RTOS
大家好、
我正在使用定制板、其中有一个按钮、如下所示、
SW2通常处于开路状态、因此信号 PWR_DWN 被 R1拉低。
按下 SW2 (闭合)时、VCC_3V 直接连接到 PWR_DWN、这会将 PWR_DWN 信号拉至高电平。
我想生成一个中断来检测何时按下按钮。 我的代码是 ass Follow、
静态 PIN_Handle 按钮 PinHandle;
静态 PIN_STATE 按钮 PinState;
PIN_Config buttonPinTable[]={
ioID_19 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_NEGEDGE、
PIN_TERMINATE
};
void buttonCallbackFxn (PIN_Handle handle、PIN_ID pinId){
System_printf ("按下按钮。\n"); System_flush ();
/*去抖逻辑,仅在按钮仍被按下(低电平)时切换*/
//CPUdelay (8000*50);
if (PIN_getInputValue (pinId)){
开关(pinId){
案例 IOID_19:
System_printf ("按钮1被按下。\n");System_flush ();
中断;
默认值:
/*不执行任何操作*/
中断;
}
}
int main(){
//调用电路板初始化函数
Board_initGeneral();
I2C_init();
Board_initSPI();
Board_initUART();
// Board_initWatchdog();
PIN_setOutputValue (buttonPinHandle、IOID_19、0);
buttonPinHandle = PIN_OPEN (buttonPinState、buttonPinTable);
if (!buttonPinHandle){
System_abort ("初始化按钮针脚时出错");
}
/*设置按钮引脚的回调*/
if (PIN_registerIntCb (buttonPinHandle、&buttonCallbackFxn)!= 0){
System_abort ("注册按钮回调函数时出错");
}
//PIN_setInterrupt (buttonPinHandle、IOID_19 | PIN_IRQ_NEGEDGE);
PIN_setConfig (buttonPinHandle、PIN_BM_IRQ、IOID_19 | PIN_IRQ_BOTHEDGES);
/*启动 BIOS */
BIOS_start();
返回0;
}