سؤال

أنا أستخدم Beaglebone Not Beaglebone Black.

حاولت فقط إخراج PWM وأتوقعت الترددات المحتملة لبعض Megaherz على جهاز سريع.
اكتشفت أن 100 هرتز هو الحد الأقصى الدقيق الذي يمكنني ضبطه من خلال SYSFS.
بدأت حفر عبر الإنترنت للأمثلة ولم أذكر حد لكنهم لم يظهروا قيمة أسرع من 100 هرتز.

مثال:

giveacodicetagpre.

أي 10cent AVR يمكن أن تفعل PWM أسرع من ذلك.
هل هناك بعض خدعة فاتني؟ هل يجب علي حقا إنشاء PWM مخصص من قبل شركة Manuallz تبديل GPIO إذا أردت تواتر أسرع من 100 هرتز؟!

هل كانت مفيدة؟

المحلول

لقد وجدت بالفعل الحل بعد وقت قصير من فتح سؤالي.
سوف نشرها هنا كما أعتقد أن هذا قد يسبب بالفعل أكثر من مجرد أن أتساءل :)

تردد PWM هو بالطبع غير محدود من هذا القبيل على جهاز 1 جيجاهرتز، فإن برنامج تشغيل Kernel لا يعمل فقط بنفس الطريقة التي يتوقعها المرء.

إذا قمت بإدخال قيمة Dructs_percent (مثل 1 في المئة) ثم يبدو أن السائق يحسب فقط قيمة DUSS_NS خارجها ونسيان النسبة المئوية بعد ذلك.
يعتقد المستخدم العادي أنه في وضع النسبة المئوية "ولكن في الواقع ملف النسبة المئوية ملزمة للتو غلاف للمساعدة.
نفس التهم التردد!
إذا قمت الآن بتغيير التردد إلى قيمة أعلى، فعندئذ يتحقق kernel إذا كانت فترة الدورة DUSS_NS تناسبها في إجمالي الفترة الجديدة!
يتجاهل أنك فعلا تعيين نسبة مئوية!

حتى بالطبع لا يمكنك الحصول على فترة ما هي أكبر من الفترة بأكملها، لذلك فشل.

نص طويل ملخص قصير:
قم دائما بتعيين duster_cycle إلى الصفر قبل تعيين التردد إذا كانت القيمة السابقة لن تتناسب مع الفترة الجديدة، وهذا يتجنب الإحباط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top