خواندن وضعیت LRADC در V3S

چجوری می تونم از 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

2 پسندیده