ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
884945
Tech_ (27.11.2018 07:16 - 07:18, просмотров: 6897)
Непонятное поведение модуля HLVD в PIC18LF45J50. Сброс бита PIE2bits.LVDIE не запрещает прерывания. Это нормально? Для пробы, запускаю до основного цикла программы: ANCON1bits.VBGEN = 1; HLVDCONbits.HLVDEN = 0; HLVDCONbits.HLVDL = 0xb; HLVDCONbits.VDIRMAG = 0; HLVDCONbits.HLVDEN = 1; IPR2bits.LVDIP = 1; PIR2bits.LVDIF = 0; PIE2bits.LVDIE = 1; Обработчик прерывания: } else if(PIR2bits.LVDIF) { PIR2bits.LVDIF = 0; leddat.dif.PWR_LO = 1; // Флаг пониженного напряжения питания PIE2bits.LVDIE = 0; // Прерывания не запрещаются /* HLVDCONbits.HLVDEN = 0; */ // Без этого - вечная обработка прерывания при низком напряжении } В основном цикле программы: if(leddat.dif.PWR_LO) { TRISBbits.TRISB0 = 0; LATBbits.LATB0 = 1; leddat.dif.PWR_LO = 0; } else { LATBbits.LATB0 = 0; TRISBbits.TRISB0 = 0; } /* if(sf.SCND_TICK) { // Ежесекундный вызов HLVDCONbits.HLVDEN = 1; PIR2bits.LVDIF = 0; PIE2bits.LVDIE = 1; } */