我试图在启动时将PIC32保持在睡眠模式。按下电源按钮后,Pic32应该退出睡眠模式并唤醒。
我能够将PIC32置于睡眠模式,但是我不确定如何在按下按钮时将其唤醒。 每当用户按下电源按钮从而唤醒PIC32时,是否可以触发中断? 我正在使用微芯片和谐框架,对此还很陌生,有人可以建议我如何实现这一目标吗?
要放置PIC32,我正在使用和声的PowerEnterMode函数。为了唤醒PIC32,我尝试在芯片和谐提供的示例项目之后使用看门狗定时器,但无法使其正常工作。 我还读到我可以使用外部中断来设置它,但是我不知道如何设置它。
我在下面添加了我的代码。
void APP_Initialize ( void )
{
DRV_ADC_Open();
DRV_ADC_Start();
PLIB_ADC_Enable(ADC_ID_1);
SPIHandle = DRV_SPI_Open(DRV_SPI_INDEX_0, DRV_IO_INTENT_READWRITE );
DelayMs(100);
SYS_DEVCON_PowerModeEnter(SYS_POWER_MODE_IDLE);
appData.state = APP_STATE_POWER_UP;
}
void APP_Tasks (void)
{
switch ( appData.state )
{
case APP_STATE_POWER_UP:
{
uint8_t pwrButton;
pwrButton = PWR_BTNStateGet() ;
if (npwrButton == 0) // If button is pressed
{
PwrButtonDebounce += 1; // Increment the pressed timer
DelayMs(10);
} else
{
PwrButtonDebounce = 0; // Clear the Debounce Timer
}
if (PwrButtonDebounce == MAX_DEBOUNCE) // Debounced....
{
// Here Wake up routine on button press
appData.state = APP_STATE_INIT;
}
}
}
我希望每当按下电源按钮时,Pic32都将进入APP_STATE_POWER_UP状态,并且在反跳时进入初始化状态,但是它永远不会进入此状态。 有人可以建议我如何设置吗?
答案 0 :(得分:0)
您应该使用“更改通知”中断。
在您具有按钮的引脚上启用CN中断,按下该键将唤醒设备。