AT91SAM9M10-EKES değerlendirme panosunda bir GPIO IRQ programlamaya çalışıyorum. IRQ başarıyla kaydedildi ve IRQ çalışıyor. Ancak, bazı kesmeler cevapsız. Ben 26 yolluyorum, ve sadece 22.ARM tabanlı Gömülü Linux üzerinde GPIO IRQ
kodu almak:
static irqreturn_t wiegand_interrupt(int irq, void *dev_id){
atomic_inc(&counter);
printk(KERN_WARNING "IRQ recieved, counting... %d\n",atomic_read(&counter));
return 0;
}
irq1 = gpio_to_irq(AT91_PIN_PA21);
if (irq1 < 0) {
err = irq1;
printk("Unable to get irq number for GPIO %d, error %d\n",AT91_PIN_PA21, err);
goto fail;
}
err = request_irq(irq1,wiegand_interrupt,0 ,"wiegand",NULL);
irq2 = gpio_to_irq(AT91_PIN_PA20);
if (irq2 < 0) {
err = irq2;
printk("Unable to get irq number for GPIO %d, error %d\n",AT91_PIN_PA21, err);
goto fail;
}
err = request_irq(irq2,wiegand_interrupt,0 ,"wiegand",NULL);
Bütün bu sürücü değil, ama bu IRQ ile ilgilenen gerçek bir parçasıdır. Birisi kodda bir sorun görüyorsa veya neden 4 kesintiyi kaybettiğimi bilmenin bir yolunu önerebilirse, lütfen cevap verin. Ben ... :(
teşekkürler. Ramon saatlerce bu şaşırıp.
'a bakabilir misiniz? işe yarıyor. Teşekkürler. – stdcall
@Longfield: Bu http://stackoverflow.com/questions/24608817/interrupt-on-gpio-line-is-not-being-detected adresine cevap verebilir misiniz? –