三个按键实现按键中断,key1-> led1 key2->led2 key3->led3按键按一下灯亮,再按一下灯灭
#include<linux/module.h>
#include<linux/init.h>
#include<linux/of.h>
#include<linux/gpio.h>
#include<linux/of_gpio.h>
#include<linux/cdev.h>
#include<linux/time.h>
#include<linux/of_irq.h>
#include<linux/interrupt.h>
#define count 3
struct device_node *node;
int i,ret;
struct gpio_desc *gpiono[count];
unsigned int irqno[count];
irqreturn_t irq1_handler(int irqno,void* dev)
{
gpiod_set_value(gpiono[0],!gpiod_get_value(gpiono[0]));
return IRQ_HANDLED;
}
irqreturn_t irq2_handler(int irqno,void* dev)
{
gpiod_set_value(gpiono[1],!gpiod_get_value(gpiono[1]));
return IRQ_HANDLED;
}
irqreturn_t irq3_handler(int irqno,void* dev)
{
gpiod_set_value(gpiono[2],!gpiod_get_value(gpiono[2]));
return IRQ_HANDLED;
}
static int __init demo_init(void)
{
node=of_find_node_by_name(NULL,"myleds