Home arrow Support arrow Forums

Luminary Micro Forums

ar_mario

Expert Boarder

2007/09/02 04:51

EV LM3S6965 KEYB SCAN FUNCTION

int iFS_IPE;
int iFB_IPE;


int p_UP(void){
int si;
if ((GPIOPinRead(GPIO_PORTE_BASE,(GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPI O_PIN_6|GPIO_PIN_7))==14)){si=1;}
else si=0;
return si;}
int p_DOWN(void){
int si;
if ((GPIOPinRead(GPIO_PORTE_BASE,(GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPI O_PIN_6|GPIO_PIN_7))==13)){si=1;}
else si=0;
return si;}
int p_LEFT(void){
int si;
if ((GPIOPinRead(GPIO_PORTE_BASE,(GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPI O_PIN_6|GPIO_PIN_7))==11)){si=1;}
else si=0;
return si;}
int p_RIGHT(void){
int si;
if ((GPIOPinRead(GPIO_PORTE_BASE,(GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPI O_PIN_6|GPIO_PIN_7))==7)){si=1;}
else si=0;
return si;}
int p_SELECT(void){
int si;
if ((GPIOPinRead(GPIO_PORTF_BASE,(GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPI O_PIN_6|GPIO_PIN_7))==0x00)){si=1;}
else si=0;
return si;}

int anterior_p_UP, FS_pUP, FB_pUP;
int anterior_p_DOWN, FS_pDOWN, FB_pDOWN;
int anterior_p_LEFT, FS_pLEFT, FB_pLEFT;
int anterior_p_RIGHT, FS_pRIGHT, FB_pRIGHT;
int anterior_p_SELECT, FS_pSELECT, FB_pSELECT;

void scan_keyb(void){

//RISING EDGES
if (p_UP()==1 && anterior_p_UP==0) {FS_pUP=1;FB_pUP=0;anterior_p_UP=1;}
if (p_DOWN()==1 && anterior_p_DOWN==0) {FS_pDOWN=1;FB_pDOWN=0;anterior_p_DOWN=1;}
if (p_LEFT()==1 && anterior_p_LEFT==0) {FS_pLEFT=1;FB_pLEFT=0;anterior_p_LEFT=1;}
if (p_RIGHT()==1 && anterior_p_RIGHT==0) {FS_pRIGHT=1;FB_pRIGHT=0;anterior_p_RIGHT=1;}
if (p_SELECT()==1 && anterior_p_SELECT==0) {FS_pSELECT=1;FB_pSELECT=0;anterior_p_SELECT=1;}
//FALLING EDGES
if (p_UP()==0 && anterior_p_UP==1) {FB_pUP=1;FS_pUP=0;anterior_p_UP=0;}
if (p_DOWN()==0 && anterior_p_DOWN==1) {FB_pDOWN=1;FS_pDOWN=0;anterior_p_DOWN=0;}
if (p_LEFT()==0 && anterior_p_LEFT==1) {FB_pLEFT=1;FS_pLEFT=0;anterior_p_LEFT=0;}
if (p_RIGHT()==0 && anterior_p_RIGHT==1) {FB_pRIGHT=1;FS_pRIGHT=0;anterior_p_RIGHT=0;}
if (p_SELECT()==0 && anterior_p_SELECT==1) {FB_pSELECT=1;FS_pSELECT=0;anterior_p_SELECT=0;}
}

//reset Mirror input bits
void reset_IPE(void){

//PONER A CERO TODAS LAS IMAGENES DE PULSADORES
FS_pUP=0;
FB_pUP=0;
FS_pDOWN=0;
FB_pDOWN=0;
FS_pLEFT=0;
FB_pLEFT=0;
FS_pRIGHT=0;
FB_pRIGHT=0;
FS_pSELECT=0;
FB_pSELECT=0;
}


//////////////////////////////////////////////////usage://////////////////////////////////////////// ///////////////////////

while(true){


scan_keyb();

if (p_UP==1){OSRAM128x64x4StringDraw("true at UP key",0,10,15);}

if (FS_pSELECT==1){OSRAM128x64x4StringDraw("rise edge at SELECT key",0,20,15);}




///USER PROGRAM



reset_IPE();

}

login or register to reply

      Topics Author Date
    thread link
EV LM3S6965 KEYB SCAN FUNCTION
ar_mario 2007/09/02 04:51