سؤال

لدي شاشة LCD HD44780، وأستخدم مكتبة LiquidCrystal المتوفرة مع حزمة تطوير Arduino.ومع ذلك، فهي ليست موثوقة.لقد لاحظت بعض المشاكل معها، وبدلاً من أن تكون مدفوعة بالمقاطعة، فإنها تظل في وضع السكون طالما يعتقد المطور أن الشريحة يجب أن تستغرق لتنفيذ العملية.

من أوراق المواصفات، سيتم تعيين علامة BUSY أثناء التنفيذ، مما يعني أنه من الممكن أن يتم تشغيلها بالمقاطعة.

هل يعرف أحد مكتبة تقوم بذلك بالفعل، وهل تتطلب توصيل جميع البتات الثمانية أم يمكنني الاحتفاظ بها عند 4 دبابيس؟

نصائح أخرى

منذ بعض الوقت قمت بتعديل LiquidCrystal lib لدعم علامة الانشغال.يرجى ملاحظة أن العملية الحقيقية مدفوعة بالمقاطعة لا ممكن - لكل قراءة تحتاج إلى تبديل Eخط نبيل مرتين.ولذلك سوف تحتاج إلى استطلاع العلم مشغول.

ثم قمت بالعثور على بعض المعايير، وهي أن استطلاع العلم المزدحم هو أبطأ من مجرد انتظار معظم الأوامر.(الاستثناء هو الأمرين "clear" و"home").كان السبب هو أن التبديل بين وضع القراءة ووضع الكتابة يتطلب خطوات إضافية مثل 8 مكالمات إضافية digitaWrite و8 مكالمات إضافية إلى pinMode.حتى مع Arduinos بسرعة 16 ميجاهرتز، يكون هذا أبطأ من مجرد انتظار 100 ثانية.

بعد ذلك كتبت مكتبة تتعامل مع سجلات الدبوس مباشرة وفي الوضع المجمع - جميع المسامير الثمانية مع وصول تسجيل واحد.بعد ذلك كنت في الملعب للحصول على بعض الفوائد من خلال الاقتراع.

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