📄 key.c
字号:
/****************************************************************************************************** GPIO input testing program.** Press KEY1, LED light on and shutdown if released.****************************************************************************************************/#define IN_TGPIO#include "config.h"#define KEY1 20 //P0.20 connected to KEY1#define LED 28 //P2.28 controles LEDvoid delayms(uint32 delay){ uint32 i; for( ; delay>0; delay--) for(i=0; i<5000; i++);} int main(){ int fd1, fd2; uint32 pin = KEY1; fd1 = open("/dev/P0", O_RDONLY); if(fd1 == -1) { printf("\nCan't open P0!\n"); return -1; } fd2 = open("/dev/P2", O_RDONLY); if(fd2 == -1) { printf("\nCan't open P2!\n"); return -1; } printf("\nTest GPIO input(KEY), P0.20--KEY1\nPress KEY1, LED light on and shut down if released.\n"); // set IO Direction ioctl(fd1, GPIO_SET_PIN_IN, KEY1); ioctl(fd2, GPIO_SET_PIN_OUT, LED); while(1) { pin = KEY1; ioctl(fd1, GPIO_READ_PIN, &pin); while(pin != 0) {// have no key ,continue read pin ioctl(fd2, GPIO_SET_PIN, LED); pin = KEY1; ioctl(fd1, GPIO_READ_PIN, &pin); } // have key, delay delayms(10); // delay // after delay, read pin again pin = KEY1; ioctl(fd1, GPIO_READ_PIN, &pin); while(pin == 0) // if key released,go on read pin {// remain 0, key pressed, ioctl(fd2, GPIO_CLR_PIN, LED); // ioctl(fd2, GPIO_SET_PIN, LED); pin = KEY1; ioctl(fd1, GPIO_READ_PIN, &pin); } // ioctl(fd2, GPIO_CLR_PIN, LED); }// close(fd); return 0;}/********************************************************************************************************* ** End Of File********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -