есть необходимость прочитать данные через GPIO по протоколу wiegand 26 на pcduino. пробовали читать через скетч ардуиновский в непрерывном цикле - читает нормально, но при загрузке процессора пропадают данные. Попробовал написать модуль ядра, с надеждой что ситуация улучшиться.
Делаю два прерывания на data0 и data1 пины GPIO if(request_irq(irq_gpio02, wiegand_data_isr1, IRQF_DISABLED|IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RISING, «wiegand_data1», &wiegand))
прерывания назначаются и отрабатывают. Но из 26 бит приходит все время разное количество. Уже убрал printk из обрабочика прерывания, все равно пропадаю. Есть подозрение, что установка таймера вызывает задержку и пропадание прерывания. уже и чтение с gpio убрал, анализирую какое прерывание 1 или 0 вызвалось, все равно пропадают биты. Подскажите как правильно работать с GPIO в контексте реалтайма из модуля ядра ?