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