gpio口、内核定时器使用

/*申请gpio*/

int gpio_request(unsigned gpio, const char *label);

/*设置gpio为输入状态,即设置如(GPH0CON)*/

int gpio_direction_input(unsigned gpio);

/*设置gpio为输出状态,即设置如(GPH0CON)*/

int gpio_direction_output(unsigned gpio, int value);

/*设置gpio为输入或输出状态,即设置如(GPH0CON)*/

int s3c_gpio_cfgpin(unsigned int pin, unsigned int config);

/*
 读取gpio的值,0或1.即读取(GPHODAT)
*/
int gpio_get_value(unsigned gpio);

/*
 向gpio设置值,0或1,即设置(GPHODAT)
*/
void gpio_set_value(unsigned gpio, int value);

 

struct timer_list timer;

init_timer(&timer);
timer.function = &gpio_check_button;
timer.data = (unsigned long)bdata;
timer.expires = jiffies + msecs_to_jiffies(500);

add_timer(&timer);/*内核定时器第一次用*/

mod_timer(&timer, jiffies + msecs_to_jiffies(500));/*内核定时器第二次用*/

在中断服务程序中,添加内核定时器,服务程序执行完才开始添加定时器,开始计时。

原文地址:https://www.cnblogs.com/sky-heaven/p/5063451.html