Как вывести Pic32 из спящего режима? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь держать PIC32 в спящем режиме при загрузке.И когда кнопка питания нажата, Pic32 должен выйти из спящего режима и проснуться.

Я могу перевести PIC32 в спящий режим, но я не уверен, как заставить его активироваться при нажатии кнопки.Возможно ли, если я нажму кнопку включения и смогу разбудить PIC32, я смогу вызвать прерывание?Я использую фреймворк для микрочипа Harmony и совершенно новичок в этом вопросе. Может, кто-нибудь подскажет, как мне этого добиться?

Чтобы поставить 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 и при отладке переходить в состояние инициализации, но он никогда не приходит в это состояние.Может кто-нибудь подсказать, как мне это настроить?

1 Ответ

0 голосов
/ 05 января 2019

Вам следует использовать прерывание уведомления об изменении.

Включите прерывание CN на контакте, которым вы пользуетесь вашей кнопкой, и оно будет пробуждать ваше устройство при нажатии.

...