zigbee红外线接收器中断实验

来源:互联网 发布:知乎 找不到兴趣 编辑:程序博客网 时间:2024/03/29 17:14
#include <linux/interrupt.h>#include <linux/module.h>#include <linux/init.h>#define GPIOCFG0 (*(volatile unsigned *)0xbfd010C0)#define GPIOCFG1 (*(volatile unsigned *)0xbfd010C4)#define GPIOOE0 (*(volatile unsigned *)0xbfd010D0)#define GPIOOE1 (*(volatile unsigned *)0xbfd010D4)#define GPIOIN0 (*(volatile unsigned *)0xbfd010E0)#define GPIOIN1 (*(volatile unsigned *)0xbfd010E4)#define GPIOOUT0 (*(volatile unsigned *)0xbfd010F0)#define GPIOOUT1 (*(volatile unsigned *)0xbfd010F4)static irqreturn_t hello (int i, void *p){    printk(KERN_EMERG "interrupt success\n");    return (IRQ_HANDLED);}static int __init interrupt_init(void){    GPIOCFG1 |= (1 << 29 );// 0x20000000;//1<<29    GPIOOE1  |= (1 << 29 );// 0x20000000;    GPIOIN1  |= (1 << 29 );//0x20000000;       int result;    int *j = (int*)125;    result = request_irq(125, hello, IRQF_SHARED|IRQ_TYPE_LEVEL_LOW, "aaa", j);    if( result!=0 ){        printk(KERN_WARNING "result=%d\nrequest_irq is fail\n",result);    }    enable_irq(125);    return 0;}static void __exit interrupt_exit(void){    int *j = (int*)125;    free_irq(125, j);    printk(KERN_ALERT "quit!\n");}module_init(interrupt_init);module_exit(interrupt_exit);MODULE_LICENSE("GPL");
实验结果:用红外线发射器发射到zigbee板的接收器上,终端会打印出触发中断的信息
0 0
原创粉丝点击