This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Device won't leave power-down mode (but does exit IDLE mode)

The problem I am having is getting the device to exit power down mode with the keyboard interrupt. The board comes out of IDLE mode fine but when I set PCON=0x02 instead of PCON=0x01 (i.e. power down mode instead of IDLE mode), the unit will not respond to a keyboard interrupt. (The program does not get past having the first 3 LEDS on). I am using the KEIL MCB900 board.

// Program to illustrate problem with device eaving POWER DOWN mode
#include <REG932.H>
void keypad() interrupt 7	// wake unit up!
{
int count=60000;
int count2=8;
KBCON=0;		// reset the keyboard interrupt bit
PCON=0x00;	        // return to NORMAL mode of operation
EKBI=0;		        // disbale keypad interrupt
P2=0x08;		// set 4th LED on
while (--count2)	// simple delay to allow user to see 4th LED
while (--count);
}

void main()
{
P2M1=0;		// set all of port 2 to quasi - bidirectional mode
P2M2=0;
P0M1=0;		// set port 0 to quasi - bidirectional
P0M2=0;

P2=0x07;		// turn first three LEDS on port 2 on
P0=0xFF;		// set all of port 0 high, ready to be pulled low
KBCON=0;		// set test to be not equal to the pattern in
KBPATN=0xFF;	        // pattern to be tested against.
KBMASK=0xFF; 	        // set which pins can cause an interrupt
EA=1;		        // set overall interrupt bit
EKBI=1; 		// enable the keyboard interrupt specifically

PCON=0x01;	// enter idle mode (0x01) or power down mode(0x02)

while(1)
	{
	P2=0x01;	// if execution reaches here, light LED 1
	}
}

0