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));/*内核定时器第二次用*/
在中断服务程序中,添加内核定时器,服务程序执行完才开始添加定时器,开始计时。
【作者】sky
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.