چجوری می تونم از LRADC توی برنامه c استفاده کنم؟ یا چجوری می تونم توی لینوکس از وضعیت LRADC مطلع بشم؟
اگه خودتون kernel و device tree و بقیه چیزارو کامپایل میکنید از مرحله ۱ شروع کنید. اگه یه سیستم لینوکس آماده دارید مرحله ۱ رو بیخیال شید.
۱- اول مطمئن بشید که نود lradc در فایل device tree ( .dts ) وجود داره. ( اسم هایی که برای سطوح ولتاژ مختلف نوشته شده ثابتهایی هستند که توی کرنل تعریف شدن و میتونید با ثابتهای دیگه عوضشون کنید )
۲- چک کنید /dev/input/eventx
وجود داشته باشه بعد با دستور
evdev_fd = open(dev_name, O_RDWR | O_NOCTTY | O_NDELAY);
یه رفرنس به فایل درست کنید ( dev_name همون مسیر eventx هست )
الان به ورودی lradc دسترسی دارید و مثل خیلی چیزای دیگه توی لینوکس میتونید با روشهای مختلف مثل poll/select یا توی یه حلقه با ثابت زمانی مشخص بخونیدش
۳- برای خواندن یک input event دستور read از کتابخانه <linux/input.h>
باید استفاده بشه. مثلا به این صورت:
read(evdev_fd, &inev, sizeof(struct input_event))
آرگومان inev
یه input_event
هست که در <linux/input.h>
تعریف شده
برای جزئیات بیشتر میتونید این عبارت رو جستجو کنید : Linux Input Subsystem userspace API