جدول المحتويات:

إعادة استخدام دبوس واجهة ATtiny84 / 85 SPI: 6 خطوات
إعادة استخدام دبوس واجهة ATtiny84 / 85 SPI: 6 خطوات

فيديو: إعادة استخدام دبوس واجهة ATtiny84 / 85 SPI: 6 خطوات

فيديو: إعادة استخدام دبوس واجهة ATtiny84 / 85 SPI: 6 خطوات
فيديو: Rotary Joystick to USB: MAME Interface for 13 Pin Header 2024, يوليو
Anonim
إعادة استخدام دبوس واجهة ATtiny84 / 85 SPI
إعادة استخدام دبوس واجهة ATtiny84 / 85 SPI

هذا التوجيه هو متابعة للتوجيه "ATtiny84 / 85 تصحيح الأخطاء داخل الدائرة مع الإخراج التسلسلي" ويوسع تكوين الأجهزة والبرامج لمعالجة مشكلة إعادة استخدام دبابيس تنزيل البرمجة بواسطة برنامج التطبيق. إجمالاً ، بين هذا والجزء 1 القابل للتوجيه ، تتم مناقشة / إظهار الموضوعات التالية:

عنوان ATtiny84 ATtiny85
الاتصال التسلسلي باستخدام فئة SoftwareSerial X X
مشاركة دبابيس الجهاز بين التطبيق والتنزيل X X
دبوس تغيير المقاطعة X
المقاطعة الخارجية X
السكون في وضع POWER_DOWN ؛ استيقظ على المقاطعة X
حل بديل لخطأ ارتباط متجه المقاطعة "المعرّف بشكل مضاعف" المتعلق بـ SoftwareSerial X
التعديل والتنزيل والتصحيح داخل الدائرة … دورة التطوير لأجهزة ATtiny X X

تعد إضافة مكون إدخال / إخراج للأجهزة إلى أحد المسامير المخصصة لواجهة برمجة SPI أمرًا مقبولًا في بعض الأحيان ، وأحيانًا لا يكون كذلك. على سبيل المثال ، تؤدي إضافة مصباح LED إلى MISO فقط إلى وميض LED أثناء التنزيل ثم يكون متاحًا للتطبيق. ومع ذلك ، فإن إضافة جرس بيزو إلى MISO سيؤدي إلى صوت صرير رهيب يتبعه فشل التنزيل.

يشرح هذا التوجيه كيفية استخدام مُضاعِف 4 × 2: 1 "لاستعادة" استخدام المسامير المخصصة لواجهة SPI إشارات MISO و MOSI و SCK من خلال حمايتها أثناء التنزيل. تتطلب إعادة استخدام دبوس RESET تغيير المصهر ولا يشمله هذا النهج. يتم تنفيذ التخصيص المزدوج للدبابيس باستخدام معدد الإرسال للتبديل بين مدخلات التطبيق والبرمجة اعتمادًا على ما إذا كان التنزيل قيد التقدم. يتم تضمين التعليمات البرمجية والخطط لكل من ATtiny84 و ATtiny85. تتم معالجة تكوين ATiny84 أولاً نظرًا لأنه يحتوي على منفذي إدخال / إخراج ويمكن استخدامه لتوضيح بعض المشكلات / الحلول الإضافية. بعد المناقشة الصغيرة 84 ، تمت مناقشة نفس السيناريوهات لـ ATtiny85.

الخطوة 1: الأجهزة المطلوبة

صورة
صورة

تم سرد معظم الأجهزة المطلوبة في الجزء 1 القابل للتوجيه ، لذلك تم سرد الأجهزة الجديدة فقط أدناه.

اسم المصدر المحتمل كيف تستخدم
4x2: 1 معدد صائد الفئران يحتوي على أربعة مفاتيح 2-input؛ 1-output وهي الآلية التي يتم من خلالها مشاركة إشارات واجهة SPI وإدخال / إخراج التطبيق.
مفتاح SPST سيعمل أي نوع مفتاح (مؤقت أو مغلق). يتم استخدام المفتاح لتوضيح مشاركة الدبوس لإدخال التطبيق.
10 كيلو المقاوم مقاوم منسدل لمفتاح SPST لتجنب إدخال عائم
صورة
صورة
صورة
صورة

معدد الإرسال هو المفتاح لعزل استخدام تنزيل الدبوس من استخدام التطبيق. تعتبر الوظيفة العامة لمضاعف الإرسال 4 × 2: 1 مباشرة إلى حد ما وتتكون من إشارتين تحكم و 4 مفاتيح تعمل بشكل متماثل. تتم مناقشة سلوك كل دبوس معدد الإرسال أدناه:

دبوس اسم وظيفة
15 جي كما هو موضح في جدول الحقيقة ، لا يعمل معدد الإرسال إلا عندما يكون دبوس تمكين G منخفضًا. نظرًا لأننا لا نريد أبدًا تعطيل معدد الإرسال تمامًا ، فسيتم توصيل الدبوس 15 مباشرة بالأرض.
2-4; 5-7; 9-11;12-14 A (الإدخال) ، B (الإدخال) ، Y (الإخراج) هناك أربعة مدخلين ؛ مفاتيح خرج 1 مع كل مجموعة من 3 دبابيس مرقمة على التوالي بالترتيب A (الإدخال) ، B (الإدخال) ، Y (الإخراج) على سبيل المثال للمفتاح 1 ؛ دبوس 2 = 1A ؛ دبوس 3 = 1B ؛ دبوس 4 = 1Y.
1 يختار عندما يكون التحديد منخفضًا ، يتم توصيل دخل المحول A بدبوس إخراج المحول المرتبط ، Y. عندما يكون التحديد مرتفعًا ، يتم توصيل دخل المحول B بالإخراج بدلاً من ذلك. يتم التحكم في المفاتيح بشكل متزامن بواسطة إشارة التحديد وتعمل بشكل متماثل.
8 GND معدد IC الأرض
16 VCC مضاعف طاقة IC

الخطوة 2: نظرة عامة على حالات الاختبار

صورة
صورة
صورة
صورة

يعتمد السيناريوهان لإعادة استخدام الدبوس على ما إذا كان الدبوس هو إدخال أو إخراج تطبيق. إجراء معالجة أي إدخال هو نفسه دائمًا ؛ كما أن إجراء مخرجات التطبيق متطابق بغض النظر عن مكون الأجهزة. ومع ذلك ، فإن التفسير أسهل ، ونأمل أن يكون أوضح ، إذا تم تقديم أمثلة محددة. تظهر التخطيطات المبسطة للحالتين أعلاه. بالنسبة للإعدادات التفصيلية لاحقًا ، تصبح الوصلات بمثابة عش السناجب ، لذا قد يكون من المفيد الرجوع إلى هذه المخططات الأنظف.

RESET هو الخيار الأمثل لإشارة تحديد المضاعف نظرًا لأنه منخفض أثناء التنزيل ولكنه يرتفع مرة أخرى عند اكتمال التنزيل. لاحظ أنه يمكن استخدام أي من محولات مُضاعِف الإرسال في أي من الحالتين نظرًا لأن جميع المفاتيح تعمل بشكل متماثل. كما أن أياً من الأمثلة ليس "واقعياً". تم اختيارهم بدلاً من ذلك كأبسط طريقة لتوضيح تقنيات العزل

  1. حالة الإخراج: خرج LED من ATtiny84 pin 4 (SCK) معزول باستخدام مفتاح المضاعف 2

    • قم بتوصيل دبوس معدد الإرسال 2A بالأرض
    • قم بتوصيل المضاعف دبوس 2B إلى ATtiny85 pin 4
    • قم بتوصيل 2Y الإخراج إلى أنود LED

      • نتائج متوقعة:

        • LED مطفأ أثناء التنزيل منذ توصيله بـ 2A ، أرضي
        • يتم توصيل مؤشر LED بدبوس إخراج التطبيق 4 بعد التنزيل عبر 2B ويبدأ في الوميض
  2. علبة الإدخال: إدخال مفتاح SPST إلى ATtiny84 pin 6 (MOSI) معزول باستخدام مفتاح مضاعف 3

    • تم نقل سلك الرصاص MOSI من رأس مبرمج AVR إلى 3A
    • دخل التبديل 3B متصل بإخراج SPST
    • الإخراج 3Y متصل بـ ATtiny84 pin 6

      • 3A ، MOSI ، متصل بالرقم 6 أثناء التنزيل
      • 3B ، خرج SPST ، متصل بالدبوس 6 بعد التنزيل

الحالة 1 ناجحة إذا لم تومض LED أثناء تنزيل البرنامج ثم يومض كل ثانيتين بعد التنزيل كما هو متوقع تحت التحكم في البرنامج. بدون عزل ، سيومض مؤشر LED أثناء التنزيل لأنه متصل مباشرة بإشارة SCK ، والتي تغير الحالة إلى استقبال / إرسال بيانات الساعة.

تكون الحالة 2 ناجحة إذا تمت إعادة توجيه إشارة MOSI إلى ATtiny84 أثناء التنزيل ، أي أن التنزيل لا يفشل ، ويستجيب مؤشر LED لمفتاح تشغيل / إيقاف تشغيل SPST بعد التنزيل. الحالة 2 تمنع فشل تنزيل واحد غير محتمل. بدون العزل ، سوف يتسبب مفتاح SPST في حدوث فشل إذا 1) تم استخدام مفتاح مغلق و 2) تم ترك المفتاح في وضع التشغيل أثناء التنزيل. عند عزله بواسطة معدد الإرسال ، لا يمكن أن يتسبب التبديل في فشل التنزيل تحت أي ظرف من الظروف. قليل من الامتداد ولكنه يريحنا نحن الأشخاص القدامى.

تتمثل إحدى نتائج استخدام معدد الإرسال في أنه لم يعد من الممكن توصيل مكون الأجهزة مباشرة بدبوس الإدخال / الإخراج للمتحكم الدقيق. هذا غير مريح إلى حد ما ولكنه يسمح للمكون بالبقاء على اللوح أثناء الاختبار مع أجهزة التطبيق الأخرى ، ويمكن إعادته إلى موقعه الصحيح عند اكتمال الاختبار.

الخطوة 3: حالة ATtiny84 1 - عزل إخراج التطبيق

صورة
صورة

تصف هذه الخطوة الإعداد لمشاركة دبوس إخراج التطبيق مع إشارة التنزيل. المثال المستخدم هو مؤشر LED المتصل بالدبوس 4 (SCK). يسمح استخدام مؤشر LED الحالي كمثال بالتركيز على إضافة مُضاعِف الإرسال إلى بيئة الأجهزة والبرامج في الجزء 1.

  • المعدات

    • أضف مُضاعِف الإرسال إلى اللوح في الموقع النسبي الموضح في الرسم التخطيطي المتقطع أعلاه. يتم وضع معدد الإرسال باتجاه المركز لإتاحة مساحة لمفتاح SPST المطلوب في الحالة 2.
    • قم بتمديد إشارة RESET إلى مُضاعِف الإرسال عن طريق إضافة سلك رصاص (يشير إلى اللون الأصفر) من ATtiny84 pin 11 إلى طرف مُضاعِف الإرسال 1.
    • إعداد الأجهزة المتبقية كما هو موضح في الخطوة 2

      • قم بتوصيل معدد الإرسال 2A مباشرة بالأرض
      • قم بتوصيل دبوس 2B إلى ATtiny84 pin 4
      • قم بتوصيل 2Y الإخراج إلى أنود LED

        • نتائج متوقعة:

          • أثناء التنزيل 2Y متصل بالأرضي (2A) لذلك يظل مؤشر LED مطفأ
          • بعد تنزيل 2Y يتم توصيل ATtiny84 pin 4 - تحكم LED للتطبيق
  • برمجة

    • يتم إعادة استخدام رمز الجزء 1 ؛ متاح من الجزء 1 القابل للتوجيه وليس مكررًا هنا
    • قم بتحميل وتجميع برنامج الجزء 1 في Arduino IDE
    • قم بتوصيل مبرمج Tiny AVR بمنفذ USB للكمبيوتر الشخصي
    • قم بتوصيل كبل Adafruit USB بالتسلسل بمنفذ USB ثانٍ

      • يتم إنشاء منفذ COM وإتاحته تلقائيًا في قائمة منافذ IDE
      • قم بتشغيل نافذة COM
    • قم بتنزيل الكود المترجم إلى ATtiny84

نتائج برنامج التطبيق هي نفسها بالنسبة للجزء 1 حيث أن التغيير الوحيد كان نقل مؤشر LED إلى موقع "محمي": يومض مؤشر LED كل ثانيتين ؛ الإخراج التسلسلي هو نفسه. الاختلاف الوحيد الذي يجب أن يحدث هو أن مؤشر LED لم يعد يومض أثناء التنزيل لأنه ، خلال ذلك الوقت ، يكون متصلاً بالأرض من خلال طرف معدد الإرسال 2A.

صورة
صورة

الخطوة 4: حالة ATtiny84 2 - عزل إدخال التطبيق

صورة
صورة

تعتمد هذه الخطوة على الإعداد لحالة عزل الإخراج السابقة. تتكون تغييرات الأجهزة من إرفاق مفتاح SPST بـ ATtiny84 pin 6 (MOSI) عبر معدد الإرسال. لذا فإن التغييرات في الأجهزة ضئيلة ولكن هناك العديد من التغييرات في البرامج للسماح لمفتاح SPST بالتحكم في مؤشر LED باستخدام مقاطعة تغيير الدبوس. تم تضمين الكود المحدث في الجزء السفلي من هذا القسم. يجب نسخ الكود في Arduino IDE ؛ نقترح حفظه تحت اسم Multiplexer_Input. (أعتذر عن طول هذا القسم ولكنه جوهر الغرض من التعليمات وأعتقد أنه يقرأ بشكل أفضل على أنه كتلة متراصة بدلاً من إدخال فواصل اصطناعية.)

تحديث موقع غرض
تتضمن فئة SoftwareSerial "تم اختراقها" تشمل القسم يتم الآن التحكم في مؤشر LED بواسطة مفتاح SPST عبر مقاطعة تغيير الدبوس. يجب تعديل فئة SoftwareSerial لأنه بخلاف ذلك يخصص جميع متجهات مقاطعة تغيير الدبوس. يؤدي هذا إلى حدوث خطأ ارتباط "متعدد التعريفات" لمتجه (المنفذ 0) المعين لمحول SPST. يجب وضع إصدار SoftwareSerial الذي تم اختراقه في نفس دليل البرنامج بحيث يؤثر فقط على هذا التطبيق.
تعريف دبوس إدخال SPST تضمين / قسم التعريف تعيين إدخال SPST إلى دبوس الجهاز. الدبوس خاص بالجهاز لذا يتم إضافته إلى قسم (أقسام) #ifdef ATtiny8x.
وضع دبوس الإدخال SPST وظيفة الإعداد تم تكوين دبوس SPST كمدخل
قم بتكوين مقاطعة دبوس SPST وظيفة الإعداد يتم تعيين متجه المقاطعة إلى دبوس إدخال SPST بحيث يؤدي تغيير حالة التبديل إلى مقاطعة. سجلات التكوين ونوع المقاطعة خاصة بالجهاز. لجعل الكود مباشرًا قدر الإمكان ، يتم التعامل مع الاختلافات داخل قسم #if محدد
قم بإعداد رسالة تسلسلية كاملة وظيفة الإعداد يتم تغيير رسالة الإخراج التسلسلي الكاملة للإعداد لتعكس تطبيق Multiplexer Input
إضافة SPST التبديل وظيفة ISR قسم الكود تتم إضافة ISR لمقاطعة تغيير دبوس SPST. الكود شائع ولكن المتجه المستخدم خاص بالجهاز ويتم تحديده في الأقسام التابعة للجهاز في الجزء العلوي من البرنامج. من أجل التحقق من تنشيط ISR ، يتم تغيير حالة LED. على الرغم من عدم وجود تطبيق حقيقي ، يتم إنشاء رسالة إخراج تسلسلية تعكس حالة LED الجديدة.
تعديل معالجة الحلقة وظيفة الحلقة يتحكم ISR الآن في تشغيل وإيقاف تشغيل LED بحيث تتم إزالة الوظيفة من روتين الحلقة. تمت إضافة استدعاء لروتين النوم لـ ATtiny84 كنوع من "إضافي". بالنسبة لهذا التطبيق ، لا يعمل ATtiny85 sleep ؛ ربما بسبب تدخل فئة Software Serial لأنه يعمل مع SoftwareSerial الذي تمت إزالته.
أضف روتينًا للنوم قسم الكود وظيفة النوم ليست ضرورية لتوضيح استخدام معدد الإرسال. تمت الإضافة فقط لأنك ترغب عادةً في انتظار إدخال في وضع POWER_DOWN لتوفير الطاقة بدلاً من الاستمرار في تشغيل حلقة البرنامج دون القيام بأي شيء حتى يحدث الإدخال.

قم بتعديل رمز فئة SoftwareSerial

يجب تغيير فئة SoftwareSerial بحيث لا تتسبب في اختناق جميع منافذ المقاطعة الخاصة بتغيير السن. يوجد رمز فئة SoftwareSerial في

C: / Program Files (x86) Arduino / Hardware / arduino / avr / libraries / SoftwareSerial / src

ابحث عن PCINT0_vect في SoftwareSerial.cpp للعثور على موقع البدء لتغييرات التعليمات البرمجية. أضف التعليمات البرمجية التالية التي تسبق مباشرة عبارة #if المعرفة (PCINT0_vect) الموجودة.

# إذا تم تعريفها (_ AVR_ATtiny84_)

#define MYPORT PCINT1_vect #elif معرف (_ AVR_ATtiny85_) #define MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_interrupt () ؛ }

قم الآن بالتعليق على كتلة الكود الحالية التي تخصص متجهات مقاطعة المنفذ كما هو موضح أدناه (فقط أضف رموز تعليق البداية والنهاية / * و * /):

/*

#if معرف (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt ()؛ } #endif #if معرف (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt ()؛ ISR (PCINT1_vect ، ISR_ALIASOF (PCINT0_vect)) ؛ } #endif #if (PCINT2_vect) ISR (PCINT2_vect، ISR_ALIASOF (PCINT0_vect)) ؛ #endif #if (PCINT3_vect) ISR (PCINT3_vect ، ISR_ALIASOF (PCINT0_vect)) ؛ #إنهاء إذا */

تكوين الأجهزة

يتم توصيل مفتاح SPST بـ ATtiny84 pin 6 (MOSI) كما هو موضح في الخطوة 2. يتم تكرار الإجراء هنا للراحة.

  • قم بتوصيل مدخلات التبديل 3A برأس MOSI Tiny AVR Programmer
  • قم بتوصيل 3B بمفتاح SPST على طرف الإخراج
  • قم بتوصيل 3Y بـ ATtiny84 pin 6

    • النتائج:

      • 3A ، MOSI ، ستدخل إلى ATtiny84 pin 6 أثناء التنزيل
      • 3B ، خرج SPST ، سيتم توصيله بالبوابة إلى الرقم 6 بعد التنزيل

تشغيل البرنامج

قبل التشغيل ، ضع مفتاح SPST في وضع إيقاف التشغيل. وإلا فسيتم تشغيل مؤشر LED عند إيقاف تشغيل المفتاح والعكس صحيح. اتبع الإجراء الخاص بالخطوة 3 لتحميل وترجمة وتنزيل برنامج إدخال التطبيق باستخدام Arduino IDE. كما كان من قبل ، يجب ألا يومض مؤشر LED أثناء التنزيل ، لذا فإن المؤشر الوحيد على تشغيل البرنامج وتشغيله سيكون هو الرسالة التسلسلية في نهاية روتين الإعداد: SETUP Complete - Input Example

في هذه المرحلة ، ينتظر البرنامج إدخالاً من مفتاح SPST. سيؤدي وضع المفتاح في وضع التشغيل إلى تشغيل مؤشر LED ؛ يؤدي التغيير مرة أخرى إلى وضع إيقاف التشغيل إلى إيقاف تشغيل مؤشر LED. تتحقق رسائل الإخراج من استدعاء ISR (ISR: Led HIGH ، ISR: Led LOW). لاحظ أن ترتيب الرسائل التسلسلية هو GO TO SLEEP أولاً ينتظر تغيير حالة التبديل ؛ عند الحصول على إدخال مفتاح ، يتم استدعاء ISR ، وتبديل LED ، وتوثيق التغيير ؛ ثم تلتقط المعالجة بعد مكالمة السكون لأن المقاطعة تستيقظ المعالج.

صورة
صورة

برنامج لهذا التعليمات:

//************************************************************************

// الجزء 2: مشاركة التطبيق / تنزيل الجهاز //. يعدل كود الجزء 1 لدعم إعادة استخدام التطبيقات للدبابيس // المعينة لواجهة برمجة SPI //. كود "Comon" لـ ATtiny85 و ATtiny84 // ******************************************** ******************************** # تتضمن "SoftwareSerial.h" // فئة Arduino SoftwareSerial المعدلة # تتضمن // while رمز المعالجة شائع ، الدبابيس المستخدمة هي جهاز محدد #if محدد (_ AVR_ATtiny84_) || معرف (_ AVR_ATtiny84A_) #define ledPin 4 // تم التبديل لتشغيل / إيقاف تشغيل Led المتصل #define rxPin 9 // Pin المستخدم للاستلام التسلسلي #define txPin 10 // Pin المستخدم للإرسال التسلسلي #define SpstPin 6 // الإدخال من مفتاح SPST (MOSI) #define ISR_VECT PCINT0_vect // SPST switch تغيير متجه المقاطعة #elif المحدد (_ AVR_ATtiny85_) #define ledPin 1 #define rxPin 4 #define txPin 3 #define SpstPin 2 // Input from SPST switch (INT0_vect #Vect // SPST switch تغيير Pin تغيير متجه المقاطعة #else #error فقط ATiny84 و ATtiny85 مدعومان من خلال هذا المشروع #endif // إنشاء مثيل لفئة البرامج التسلسلية التي تحدد دبابيس الجهاز التي سيتم استخدامها لاستقبال وإرسال SoftwareSerial mySerial (rxPin ، txPin) ؛ // ------------------------------------------------ ------------------------ // تهيئة موارد المعالجة // ------------------- -------------------------------------------------- --- إعداد باطل () {mySerial.begin (9600) ؛ // بدء تأخير المعالجة التسلسلية (2000) ؛ // امنح منفذ Serial Com وقتًا لإكمال بدء التشغيل. // خلاف ذلك ، من المحتمل أن يكون الإخراج الأول مفقودًا أو مشوهًا pinMode (ledPin ، الإخراج) ؛ // تكوين دبوس led لـ OUTPUT pinMode (SpstPin ، INPUT) ؛ // تكوين دبوس تبديل SPST كـ INPUT #if تعريف (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // إعداد مقاطعة تغيير الدبوس للتعامل مع إدخال المفتاح على الطرف 6 (MOSI) GIMSK | = (1 <

الخطوة 5: حالة ATtiny85 1 - عزل إخراج التطبيق

صورة
صورة

بدلاً من إنشاء إعداد مكرر للأجهزة لـ ATtiny85 ، ربما يكون من الأسهل البدء بالتكوين النهائي لـ ATtiny84 من الخطوة 4 واستبدال الشريحة الصغيرة 84 بالشريحة الصغيرة 85. جميع الأجهزة المطلوبة متوفرة بالفعل. إذا كنت تستخدم هذا الأسلوب ، فحدد موقع mini85 بحيث يصطف الطرفان 3 و 4 مع الكبل التسلسلي tx واستقبل الأسلاك. إنها مجرد مسألة نقل أسلاك الرصاص لواجهة SPI لتتناسب مع المواقع المطلوبة لـ ATtiny85.

إذا بدأت من نقطة الصفر ، ما عليك سوى اتباع الخطوات العامة من الخطوة 3 ومخطط التذبذب أعلاه. الكود هو نفسه المستخدم في ATtiny84 في الخطوة 3 مع نفس النتائج المتوقعة - لا يوجد وميض أثناء التنزيل ؛ عند تشغيل وميض LED على فواصل زمنية لمدة ثانيتين وتتبع رسائل الإخراج التسلسلي حالة LED.

صورة
صورة

الخطوة 6: حالة ATtiny85 2 - عزل إدخال التطبيق

صورة
صورة

لإعداد الأجهزة ، ابدأ بالتكوين من الخطوة 5 وأضف مفتاح SPST كما هو موضح في الرسم التخطيطي المائل أعلاه. لقد استخدمت بالفعل مفتاحًا مؤقتًا لإصدار tiny85 وهو يجعل التحقق أسهل قليلاً. لاحظ أنه تم تدوير خرج المحول 180 درجة من تكوين ATtiny84. يسهل هذا التغيير توجيه أسلاك التوصيل نظرًا لأن جميع إشارات SPI الثلاثة موجودة في نفس الجانب بالنسبة لـ ATtiny85.

استخدم نفس البرنامج المستخدم في ATtiny84 الخطوة 4. من المتوقع أن تظهر النتائج العامة نفسها - يتغير مؤشر LED عند تشغيل / إيقاف تشغيل مفتاح SPST وتوثيق رسائل الإخراج التسلسلي التغييرات. رسائل GO TO SLEEP مفقودة نظرًا لعدم استدعاء وظيفة السكون لـ ATtiny85. على الرغم من استخدام نفس البرنامج ، إلا أن هناك اختلافات كبيرة في التنفيذ لمراعاة حقيقة أن ATtiny85 لديه سجل منفذ واحد فقط (المنفذ 0):

  1. يخصص SoftwareSerial الآن مقاطعة تغيير المنفذ 0 للاتصال التسلسلي (تذكر أننا كنا قادرين على استخدام المنفذ 1 لـ ATtiny84.)
  2. يجب تنفيذ مقاطعة مفتاح SPST مع مقاطعة خارجية 0 (INT0) نظرًا لأن SoftwareSerial يتم تخصيص مقاطعة تغيير رقم التعريف الشخصي الوحيدة. يوضح هذا النقطة التي مفادها أن مقاطعات تغيير الدبوس والمقاطعات الخارجية مستقلة منطقيًا ويمكن استخدامها داخل نفس سجل المنفذ.
  3. لا يتم الحصول على أي شيء باستخدام إصدار SoftwareSerial معدل - يوجد منفذ واحد فقط وستلتقطه فئة SoftwareSerial. ومع ذلك ، لا يزال يتم استخدام الفئة المعدلة فقط لتجنب تغيير لا يرتبط بشكل مباشر بهدف هذه الخطوة.

موصى به: