key.c

来自「周立公smartarm开发板gpio例子」· C语言 代码 · 共 80 行

C
80
字号
/****************************************************************************************************** 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 + =
减小字号Ctrl + -
显示快捷键?