conkhicon
Advanced Member level 4
Hi all
I performed to enter on Power-down by set PCON.1=1 before setting level-Activated External Interrupts ITx and enable EXx.
clearWatchDog(); // Clear WatchDog
IT0 = 0; // Level_Activated Interrupt
EX0 = 1; // Enable External Interrupt
IT1 = 0; // Level_Activated Interrupt
EX1 = 1;
PCON |= 0x2;
And Interrupt Service:
void ex0_isr(void) interrupt 0
{
IE0 = 0; // Clear Flag EX0
EX0 = 0; // Disable Ext0.interrupt
IE1 = 0; // Clear Flag EX0
EX1 = 0; // Disable Ext1.interrupt
PCON &= 0xfd;
enableTimer0();
initSerial();
}
void ex1_isr(void) interrupt 2
{
IE0 = 0; // Clear Flag EX0
EX0 = 0; // Disable Ext0.interrupt
IE1 = 0; // Clear Flag EX0
EX1 = 0; // Disable Ext1.interrupt
PCON &= 0xfd;
enableTimer0();
initSerial();
}
But when My board's waked-up (arbitrary pulse from external Interrupt Pin) CPU still works properly, Pheripheral (Timer0,Serial...) doesn't work anyway
Even I reInitials them (see sourecode)
I don't know WHY?
I performed to enter on Power-down by set PCON.1=1 before setting level-Activated External Interrupts ITx and enable EXx.
clearWatchDog(); // Clear WatchDog
IT0 = 0; // Level_Activated Interrupt
EX0 = 1; // Enable External Interrupt
IT1 = 0; // Level_Activated Interrupt
EX1 = 1;
PCON |= 0x2;
And Interrupt Service:
void ex0_isr(void) interrupt 0
{
IE0 = 0; // Clear Flag EX0
EX0 = 0; // Disable Ext0.interrupt
IE1 = 0; // Clear Flag EX0
EX1 = 0; // Disable Ext1.interrupt
PCON &= 0xfd;
enableTimer0();
initSerial();
}
void ex1_isr(void) interrupt 2
{
IE0 = 0; // Clear Flag EX0
EX0 = 0; // Disable Ext0.interrupt
IE1 = 0; // Clear Flag EX0
EX1 = 0; // Disable Ext1.interrupt
PCON &= 0xfd;
enableTimer0();
initSerial();
}
But when My board's waked-up (arbitrary pulse from external Interrupt Pin) CPU still works properly, Pheripheral (Timer0,Serial...) doesn't work anyway
Even I reInitials them (see sourecode)
I don't know WHY?