|  | 
 
| 本帖最后由 jing007520 于 2012-5-19 20:50 编辑 
 void KeyScan_Test(void)
 {
 Uart_Printf("\nKey Scan Test, press ESC key to exit !\n");
 
 rGPBUP = rGPBUP & ~0x03f0|0x03f0;                        //  LED [8:5] => PU En
 rGPBCON = rGPBCON & ~0x3d57fc|0x3d57fc;                //LED[8:5] => OUTPUT;
 rGPFCON = rGPFCON & (~((3<<4)|(3<<0)|(3<<8)|(3<<2))) | ((2<<4)|(2<<0)|(2<<8)|(2<<2)) ;                //GPF4,2,1,0 set EINT
 
 rEXTINT0 &= ~(7|(7<<4)|(7<<8)|(7<<16));
 rEXTINT0 |= (0|(0<<4)|(0<<8)|(0<<16));                //set eint0,1,2,4 falling edge int
 
 
 rEINTPEND |= (1<<4);                                                        //clear eint 4
 rEINTMASK &= ~(1<<4);                                                //enable eint 4
 ClearPending(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);
 pISR_EINT0 = pISR_EINT1 = pISR_EINT2 = pISR_EINT4_7 = (U32)Key_ISR;
 EnableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);
 
 while( Uart_GetKey() != ESC_KEY ) ;
 DisableIrq(BIT_EINT0|BIT_EINT1|BIT_EINT2|BIT_EINT4_7);
 }
 
 就红色部分看不懂用来干什么的,是不是设置GPB的端口为led的输出端口,和上拉电阻电位的设置?
 Main程序中的Port_Init()不是设置过了么?
 这里的rGPBUP & ~0x03f0|0x03f0,到底有什么用呢?感觉像是多余的。
 
 
 :)版主大人希望您百忙之中能够给小弟指点一二,也希望广大路过的XDJM能帮忙解答,不胜感激!!!!!
 
 | 
 |