diff --git a/ES/Lab/Lab8/JOHNSON_Up_Down_Separate_GPIO.c b/ES/Lab/Lab8/JOHNSON_Up_Down_Separate_GPIO.c new file mode 100644 index 0000000..45741de --- /dev/null +++ b/ES/Lab/Lab8/JOHNSON_Up_Down_Separate_GPIO.c @@ -0,0 +1,45 @@ +#include + +int main(){ + unsigned long x, y, i, j; + + // LEDs + LPC_PINCON->PINSEL0 = 0; + LPC_GPIO0->FIODIR = 0xFF<<15; + + LPC_GPIO2->FIODIR = 0x0<<12; + + while(1){ + x = LPC_GPIO2->FIOPIN & (1 << 12); + if(x){ + y = 1<<22; + for(i=0;i<8;i++){ + LPC_GPIO0->FIOSET=y; + y = y>>1; + for(j=0; j<800000; j++); + } + y = 1<<22; + for(i=0;i<8;i++){ + LPC_GPIO0->FIOCLR=y; + y>>=1; + for(j=0; j<800000; j++); + } + } + + if(!x){ + y = 1<<15; + for(i=0;i<8;i++){ + LPC_GPIO0->FIOSET=y; + y = y<<1; + for(j=0; j<800000; j++); + } + y = 1<<15; + for(i=0;i<8;i++){ + LPC_GPIO0->FIOCLR=y; + y = y<<1; + for(j=0; j<800000; j++); + } + } + } +} +