繁体   English   中英

如何从睡眠模式唤醒Pic32?

[英]How to wake Pic32 from sleep mode?

我试图在启动时将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状态,并且在反跳时进入初始化状态,但它永远不会进入此状态。 有人可以建议我如何设置吗?

您应该使用更改通知中断。

在您具有按钮的引脚上启用CN​​中断,按下该中断将唤醒您的设备。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM