Mündəricat:

ATtiny84/85 SPI İnterfeys Pinin Yenidən İstifadəsi: 6 Addım
ATtiny84/85 SPI İnterfeys Pinin Yenidən İstifadəsi: 6 Addım

Video: ATtiny84/85 SPI İnterfeys Pinin Yenidən İstifadəsi: 6 Addım

Video: ATtiny84/85 SPI İnterfeys Pinin Yenidən İstifadəsi: 6 Addım
Video: Start using Digispark USB ATtiny85 Arduino board with blink and relay example | Robojax 2024, Iyul
Anonim
ATtiny84/85 SPI İnterfeys Pininin Yenidən İstifadəsi
ATtiny84/85 SPI İnterfeys Pininin Yenidən İstifadəsi

Bu təlimat, "ATtiny84/85 Serial Çıxışlı Dövrə Hata Ayıklama" təlimatına uyğundur və proqram proqramı tərəfindən proqramlaşdırma yükləmə pinlərinin yenidən istifadəsi problemini həll etmək üçün bu hardware və proqram konfiqurasiyasını genişləndirir. Ümumilikdə, bu ilə təlimatlandırılan 1 -ci hissə arasında aşağıdakı mövzular müzakirə olunur/nümayiş olunur:

Mövzu ATtiny84 ATtiny85
SoftwareSerial sinifindən istifadə edərək Serial Rabitə X X
Tətbiq və yükləmə arasında cihaz pinlərini paylaşın X X
Pin dəyişdirmə kəsilməsi X
Xarici fasilə X
POWER_DOWN rejimində yuxu; ara verəndə oyan X
SoftwareSerial ilə əlaqəli "çoxaldılmış" kəsmə vektor bağlantısı xətası üçün iş X
ATtiny cihazları üçün dövrə daxilində dəyişiklik edin, yükləyin, ayıklayın,… inkişaf dövrü X X

SPI proqramlaşdırma interfeysinə həsr olunmuş pinlərdən birinə hardware I/O komponenti əlavə etmək bəzən yaxşı, bəzən də yox. Məsələn, MISO -ya bir LED əlavə etmək, sadəcə yükləmə zamanı LED -in yanıb -sönməsinə səbəb olur və sonra tətbiq üçün mövcuddur. Bununla birlikdə, MISO -ya piezo səs siqnalı əlavə etmək, qorxunc bir çığırtma səsi ilə nəticələnəcək və yükləmə uğursuz olacaq.

Bu təlimat, yükləmə zamanı qoruyaraq SPI interfeysi MISO, MOSI və SCK siqnallarına təyin edilmiş pinlərin istifadəsini "bərpa etmək" üçün 4x2: 1 multiplekserdən necə istifadə olunacağını izah edir. RESET pininin təkrar istifadəsi bir sigorta dəyişikliyi tələb edir və bu yanaşma ilə əhatə olunmur. Pinlərin ikiqat təyin edilməsi, yüklənmənin olub -olmamasından asılı olaraq tətbiq və proqramlaşdırma girişləri arasında keçid etmək üçün multiplekserdən istifadə etməklə həyata keçirilir. Kod və sxemlər həm ATtiny84, həm də ATtiny85 üçün daxil edilmişdir. ATiny84 konfiqurasiyası əvvəlcə iki G/Ç portuna malik olduğundan və bəzi əlavə problemləri/həll yollarını göstərmək üçün istifadə edilə biləcəyindən bəhs edilir. Tiny84 müzakirəsindən sonra eyni ssenarilər ATtiny85 üçün müzakirə olunur.

Addım 1: Tələb olunan Avadanlıq

Şəkil
Şəkil

Lazımi avadanlıqların çoxu təlimatlandırılan 1 -ci hissədə verilmişdir, buna görə yalnız yeni avadanlıq aşağıda verilmişdir.

Adı Mümkün Mənbə Necə istifadə olunur
4x2: 1 Multiplexer Mouser SPI İnterfeysi siqnallarının və I/O tətbiqinin paylaşıldığı mexanizm olan dörd 2 girişli; 1 çıxışlı açarlardan ibarətdir.
SPST açarı Hər hansı bir keçid növü (ani və ya kilidli) işləyəcək. Keçid bir tətbiq girişi üçün pin paylaşımını göstərmək üçün istifadə olunur.
10K müqavimət Üzən girişdən qaçmaq üçün SPST açarı üçün aşağıya doğru dirəniş
Şəkil
Şəkil
Şəkil
Şəkil

Multiplexer, pin yükləmə tətbiqini tətbiq istifadəsindən təcrid etmək üçün açardır. 4x2: 1 multiplexer-in ümumi funksiyası 2 nəzarət siqnalı və 4 eyni işləyən açardan ibarət olduqca düzdür. Hər bir multiplexer pininin davranışı aşağıda müzakirə olunur:

Pin Adı Funksiya
15 G Həqiqət cədvəlində göstərildiyi kimi, multiplexer yalnız G imkan pin aşağı olduqda işləyir. Heç vaxt multipleksoru tamamilə söndürmək istəmədiyimiz üçün pin 15 birbaşa yerə bağlanacaq.
2-4; 5-7; 9-11;12-14 A (giriş), B (giriş), Y (çıxış) Dörd 2 giriş var; A (giriş), B (giriş), Y (çıxış) kimi ardıcıl olaraq nömrələnmiş hər bir 3 pinli qrupu olan 1 çıxış açarları. keçid 1 üçün; pin 2 = 1A; pin 3 = 1B; pin 4 = 1Y.
1 Seçin Seçim aşağı olduqda A keçid girişi əlaqəli keçid çıxış pininə (Y) bağlanır. Seçim yüksək olduqda, əvəzinə B keçid girişi çıxışa qoşulur. Açarlar eyni anda Select siqnalı ilə idarə olunur və eyni şəkildə işləyir.
8 GND IC torpaqlama multipleksoru
16 VCC IC gücü multiplekser

Addım 2: Test hallarına ümumi baxış

Şəkil
Şəkil
Şəkil
Şəkil

Pinin təkrar istifadəsi üçün iki ssenari, pinin bir tətbiq girişi və ya çıxışı olduğuna əsaslanır. Hər hansı bir girişlə işləmə qaydası həmişə eynidir; Ayrıca, proqram komponentləri, cihaz komponentindən asılı olmayaraq eynidır. Buna baxmayaraq, konkret nümunələr verilsə, izahat daha asan və daha aydın olar. Hər iki hal üçün minimalist sxemlər yuxarıda göstərilmişdir. Daha sonra ətraflı quruluşlar üçün əlaqələr bir az dələ yuvasına çevrilir, buna görə bu təmiz diaqramlara müraciət etmək faydalı ola bilər.

Yükləmə zamanı aşağı olduğu üçün yükləmə tamamlandıqda yüksək səviyyəyə qalxdığı üçün RESET, multiplexer Select siqnalı üçün mükəmməl seçimdir. Diqqət yetirin ki, hər iki halda da hər hansı bir multiplekser açarı istifadə edilə bilər, çünki bütün açarlar eyni davranırlar. Həm də nümunələrin heç biri "realist" deyil; təcrid üsullarını göstərmək üçün ən sadə yol olaraq seçildilər

  1. Çıxış qutusu: ATtiny84 pin 4 -dən (SCK) LED çıxışı multiplexer 2 açarı istifadə edərək təcrid olunur

    • 2A multiplekser pinini yerə bağlayın
    • multiplexer pin 2B -ni ATtiny85 pin 4 -ə qoşun
    • 2Y çıxışını LED anoduna qoşun

      • Gözlənilən Nəticələr:

        • LED 2A, yerə qoşulduğu üçün yükləmə zamanı sönür
        • 2B vasitəsi ilə yükləndikdən sonra 4 -cü çıxış pininə qoşulmuş LED və yanıb -sönməyə başlayır
  2. Giriş Çantası: ATtiny84 pin 6 (MOSI) üçün SPST keçid girişi multiplekser açarı 3 istifadə edərək təcrid olunur

    • AVR Programmer başlığından MOSI qurğuşun teli 3A -ya köçürülür
    • keçid girişi 3B SPST çıxışına bağlıdır
    • çıxış 3Y ATtiny84 pin 6 ilə əlaqələndirilir

      • 3A, MOSI, yükləmə zamanı pin 6 -ya qoşulur
      • 3B, SPST çıxışı, yükləndikdən sonra pin 6 -ya qoşulur

Vəziyyət 1, LED proqramı endirərkən yanıb -sönməzsə və proqram nəzarətində gözlənildiyi kimi endirildikdən sonra hər iki saniyədə bir yanıb -sönərsə uğur qazanır. İzolyasiya olmadan LED, yükləmə zamanı yanıb -sönəcəkdir, çünki SCK siqnalına birbaşa bağlıdır, vəziyyəti məlumatların qəbul/ötürülməsinə dəyişir.

Yükləmə zamanı MOSI siqnalı ATtiny84 -ə yönləndirilirsə, yəni yükləmə uğursuz olmazsa və yükləndikdən sonra LED SPST -in açılmasına/sönməsinə cavab verərsə 2 -ci hal uğur qazanır. Vəziyyət 2, çətin bir yükləmə uğursuzluğunun qarşısını alır. İzolyasiya olmadan, 1) kilidli bir keçid istifadə edildikdə və 2) yükləmə zamanı açar açıq vəziyyətdə qaldıqda SPST açarı uğursuzluğa səbəb olacaq. Multiplexer tərəfindən təcrid edildikdə, keçid heç bir halda yükləmə uğursuzluğuna səbəb ola bilməz. Bir az uzanır amma yaşlı insanlar üçün təsəlli veririk.

Multipleksorun istifadəsinin bir nəticəsidir ki, hardware komponenti artıq birbaşa mikrokontrolörün I/O pininə qoşula bilməz. Bu bir qədər əlverişsizdir, lakin komponentin test zamanı digər tətbiqetmələr ilə birlikdə çörək taxtasında qalmasına imkan verir və test başa çatdıqdan sonra öz layiqli yerinə qayıda bilər.

Addım 3: ATtiny84 Case 1 - Tətbiq Çıxışını təcrid edin

Şəkil
Şəkil

Bu addım, yükləmə siqnalı olan bir tətbiq çıxış pininin paylaşılması üçün quruluşu təsvir edir. İstifadə olunan nümunə, pin 4 -ə (SCK) bərkidilmiş LED -dir. Mövcud LED -in nümunə olaraq istifadə edilməsi, 1 -ci hissənin hardware və proqram mühitinə multipleksorun əlavə edilməsinə vurğu etməyə imkan verir.

  • Avadanlıq

    • Yuxarıdakı fritzing diaqramında göstərilən nisbi yerdə multiplexer'i çörək taxtasına əlavə edin. Vəziyyət 2 -də lazım olan SPST açarı üçün yer açmaq üçün multipleksor mərkəzə doğru yerləşdirilmişdir.
    • ATtiny84 pin 11 -dən multiplexer pin 1 -ə bir qurğuşun tel (sarı göstər) əlavə edərək RESET siqnalını çoxlayıcıya uzatın.
    • Qalan hardware qurğusu 2 -ci addımda göstərildiyi kimidir

      • 2A multiplekser pinini birbaşa yerə bağlayın
      • 2B pinini ATtiny84 pin 4 -ə qoşun
      • 2Y çıxışını LED anoduna qoşun

        • Gözlənilən Nəticələr:

          • yükləmə zamanı 2Y yerə (2A) qoşulur, buna görə də LED sönür
          • Yükləndikdən sonra 2Y ATtiny84 pin 4 -ə tətbiq olunur - LED nəzarət
  • Proqram təminatı

    • 1 -ci hissə kodu yenidən istifadə olunur; 1 -ci hissədən əldə edilə bilər, amma burada təkrarlanmır
    • 1 -ci hissə proqramını Arduino IDE -yə yükləyin və tərtib edin
    • Kiçik AVR proqramlaşdırıcısını PC USB portuna qoşun
    • Adafruit USB -ni Serial kabelinə ikinci bir USB portuna qoşun

      • COM portu yaradılır və avtomatik olaraq IDE port siyahısında mövcuddur
      • COM pəncərəsini işə salın
    • Tərtib edilmiş kodu ATtiny84 -ə yükləyin

Tətbiq proqramının nəticələri 1 -ci hissə ilə eynidir, çünki yeganə dəyişiklik LED -in "qorunan" bir yerə köçürülməsi idi: LED 2 saniyəlik fasilələrlə yanıb -sönür; serial çıxışı eynidir. Baş verməli olan yeganə fərq, yükləmə zamanı LED artıq yanıb sönməməsidir, çünki bu müddət ərzində 2A multiplekser pin vasitəsilə yerə bağlanır.

Şəkil
Şəkil

Addım 4: ATtiny84 Case 2 - Tətbiq Girişini təcrid edin

Şəkil
Şəkil

Bu addım əvvəlki çıxış təcrid vəziyyətinin qurulmasına əsaslanır. Avadanlıq dəyişiklikləri, multiplexer vasitəsi ilə ATtiny84 pin 6 -ya (MOSI) bir SPST keçidinin bağlanmasından ibarətdir. Beləliklə, hardware dəyişiklikləri minimaldır, lakin SPST açarının pin dəyişdirmə kəsilməsindən istifadə edərək LED -i idarə etməsinə imkan verən bir neçə proqram dəyişikliyi var. Yenilənmiş kod bu hissənin altındadır. Kod Arduino IDE -ə kopyalanmalıdır; Multiplexer_Input adı altında saxlamağı təklif edin. (Bu hissənin uzunluğuna görə üzr istəyirəm, amma təlimatçıların məqsədinin əsasıdır və düşünürəm ki, süni fasilə verməkdənsə monolit kimi daha yaxşı oxunur.)

Yeniləyin Yer Məqsəd
"hacked" SoftwareSerial sinif daxildir bölmə daxildir LED indi pin dəyişikliyi ilə SPST açarı tərəfindən idarə olunur. SoftwareSerial sinfi dəyişdirilməlidir, əks halda bütün pin dəyişikliyi kəsmə vektorlarını ayırır. Bu, SPST keçidinə təyin edilmiş (port 0) vektoru üçün "çoxlu tərif" bağlantı xətasına səbəb olur. Hacked SoftwareSerial versiyası proqramla eyni qovluğa yerləşdirilməlidir ki, yalnız bu tətbiqə təsir etsin.
SPST giriş pin tərifi daxildir/tərif bölməsi bir cihaz pininə SPST girişinin təyin edilməsi. Pin cihaza xasdır, buna görə də #ifdef ATtiny8x bölmələrinə əlavə olunur.
SPST giriş pin rejimi quraşdırma funksiyası SPST pin bir GİRİŞ olaraq konfiqurasiya edilmişdir
SPST pin kəsilməsini konfiqurasiya edin quraşdırma funksiyası Kəsmə vektoru SPST giriş pininə təyin edilir ki, keçid vəziyyətinin dəyişməsi kəsilməyə səbəb olsun. Konfiqurasiya qeydləri və kəsilmə növü cihaza xasdır. Kodu mümkün qədər sadə etmək üçün fərqlər #if müəyyən edilmiş bir hissədə işlənir
Serial mesajının tamamlanması quraşdırma funksiyası Quraşdırmanın tam seriyalı çıxış mesajı Multiplexer Giriş tətbiqini əks etdirmək üçün dəyişdirilir
IST funksiyasını SPST açarına əlavə edin kod bölməsi SPST pin dəyişikliyi üçün ISR əlavə olunur. Kod adi haldır, lakin istifadə olunan vektor cihaza xasdır və proqramın yuxarısındakı cihazdan asılı bölmələrdə müəyyən edilmişdir. ISR -nin aktiv olduğunu yoxlamaq üçün LED vəziyyəti dəyişdirilir. Həqiqi bir tətbiqdə yox-yox olsa da, yeni LED vəziyyətini əks etdirən serial çıxış mesajı yaradılır.
Döngü emalını dəyişdirin loop funksiyası ISR indi LED -in açılmasını və söndürülməsini idarə edir ki, funksionallıq loop rejimindən silinsin. ATtiny84 üçün yuxu rejiminə bir növ "əlavə" olaraq əlavə olunur. Bu proqram üçün ATtiny85 yuxu işləmir; bəlkə də Software Serial sinifinin müdaxiləsi səbəbindən SoftwareSerial ilə işlədiyi üçün silindi.
Yuxu rejimini əlavə edin kod bölməsi Yuxu funksiyası multipleksorun istifadəsini göstərmək üçün lazım deyil. Sadəcə olaraq POWER_DOWN rejimində bir girişin meydana gəlməsinə qədər heç bir şey etmədən proqrama keçməkdənsə enerjiyə qənaət etməsini gözləmək istədiyi üçün əlavə edildi.

SoftwareSerial sinif kodunu dəyişdirin

SoftwareSerial sinifini dəyişdirmək lazımdır ki, bütün pin dəyişikliyi kəsmə limanlarını bağlamasın. SoftwareSerial sinif kodu burada yerləşir

C: / Proqram Faylları (x86) Arduino / hardware / arduino / avr / library / SoftwareSerial / src

Kod dəyişiklikləri üçün başlanğıc yerini tapmaq üçün SoftwareSerial.cpp -də PCINT0_vect -də tapın. Aşağıdakı kodu mövcud #if (PCINT0_vect) ifadəsindən dərhal əvvəl əlavə edin.

#təyin olunarsa (_ AVR_ATtiny84_)

#define MYPORT PCINT1_vect #elif müəyyən edilmiş (_ AVR_ATtiny85_) #define MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_interrupt (); }

İndi liman kəsmə vektorlarını aşağıda göstərildiyi kimi ayıran mövcud kod blokunu şərh edin (sadəcə başlanğıc və son blok şərh simvollarını əlavə edin / * və * /):

/*

#if (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt (); } #endif #if müəyyən edildikdə (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect)); } #endif #if müəyyən edildikdə (PCINT2_vect) ISR (PCINT2_vect, ISR_ALIASOF (PCINT0_vect)); #endif #if müəyyən edildikdə (PCINT3_vect) ISR (PCINT3_vect, ISR_ALIASOF (PCINT0_vect)); #endif */

Avadanlığı konfiqurasiya edin

SPST açarı, 2 -ci addımda göstərildiyi kimi ATtiny84 pin 6 -ya (MOSI) bağlanır. Rahatlıq üçün prosedur burada təkrarlanır.

  • 3A açar girişini Tiny AVR Programmer başlığına MOSI qurğusuna bağlayın
  • 3B -ni SPST açarının çıxış pininə qoşun
  • 3Y -ni ATtiny84 pin 6 -ya qoşun

    • NƏTİCƏLƏR:

      • 3A, MOSI, yükləmə zamanı ATtiny84 pin 6 ilə bağlanacaq
      • 3B, SPST çıxışı, yükləndikdən sonra 6 -cı pinlə bağlanacaq

Proqramı işə salın

Çalışmadan əvvəl SPST açarını söndürmə vəziyyətinə qoyun. Əks təqdirdə, keçid söndürüldükdə və əksinə LED yanacaq. Arduino IDE -dən istifadə edərək proqram giriş proqramını yükləmək, tərtib etmək və yükləmək üçün 3 -cü addımın prosedurunu yerinə yetirin. Əvvəlki kimi, yükləmə zamanı LED yanıb -sönməməlidir, buna görə də proqramın işlədiyini göstərən yeganə göstərici quraşdırma prosedurunun sonunda serial mesajı olacaq: SETUP Complete - Input Example

Bu anda proqram SPST açarından bir giriş gözləyir. Şalteri AÇIK vəziyyətə qoymaq LED -in yandırılmasına səbəb olacaq; yenidən sönmə vəziyyətinə keçmək LED -i söndürür. Çıxış mesajları ISR -in çağırıldığını yoxlayır (ISR: Led HIGH, ISR: Led LOW). Diqqət yetirin ki, serial mesajlarının qaydası ilk növbədə keçid vəziyyətinin dəyişməsini gözləyən SLEEP -ə gedin; bir keçid əldə edildikdə ISR çağırılır, LED -i dəyişir və dəyişikliyi sənədləşdirir; fasilə prosessoru oyatdığından sonra yuxu zəngindən sonra işləmə başlayır.

Şəkil
Şəkil

BU TƏLİMATLI PROQRAM:

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

// BÖLÜM 2: Tətbiq/yükləmə cihazı pin paylaşımı //. 1 -ci hissə kodunu, SPI proqramlaşdırma interfeysinə təyin edilmiş // sancaqların təkrar istifadəsini dəstəkləmək üçün dəyişdirir //. ATtiny85 və ATtiny84 üçün "Comon" kodu // **************************************** ******************************** "SoftwareSerial.h" daxil edin // Modifikasiya edilmiş Arduino SoftwareSerial sinfi #daxil edin // emal kodu yaygındır, istifadə olunan sancaqlar cihaza xasdır #if (_ AVR_ATtiny84_) || müəyyən edilmiş (_ AVR_ATtiny84A_) #define ledPin 4 // Bağlı açmaq üçün dəyişdirildi Led açmaq/söndürmək #dexine rxPin 9 // Serial qəbul etmək üçün istifadə olunan pin #define txPin 10 // Serial ötürmə üçün istifadə olunan pin #define SpstPin 6 // SPST açarından giriş (MOSI) #define ISR_VECT PCINT0_vect // SPST açarı Pin dəyişikliyi kəsmə vektoru #elif müəyyən edildi (_ AVR_ATtiny85_) #dePine ledPin 1 #dexine rxPin 4 #define txPin 3 #define SpstPin 2 // SPST switch -dən giriş (INT0) #define_define_define // SPST açarı Pin dəyişdirmə kəsmə vektoru #başqa #səhv #Yalnız ATiny84 və ATtiny85 bu Layihə tərəfindən dəstəklənir #endif // SoftwareSerial mySerial (rxPin) qəbul etmək və ötürmək üçün hansı cihazın // pinlərin istifadə olunacağını təyin edən Proqram Serial sinifinin nümunəsini yaradın., txPin); // ------------------------------------------------ ------------------------ // Emal mənbələrini işə salın // ------------------- -------------------------------------------------- --- void setup () {mySerial.begin (9600); // Serial emal gecikməsinə başlayın (2000); // Başlamağı başa çatdırmaq üçün Serial Com portuna vaxt verin. // əks halda, 1 -ci çıxış ehtimalı yoxdur və ya pozulmuş pinMode (ledPin, ÇIXIŞ); // Çıxış pinMode (SpstPin, INPUT) üçün led pin konfiqurasiya edin; // SPST keçid pinini INPUT #olaraq təyin olunarsa (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // pin 6 -da (MOSI) GIMSK | 0

Addım 5: ATtiny85 Case 1 - Tətbiq Çıxışını təcrid edin

Şəkil
Şəkil

ATtiny85 üçün təkrarlanan bir hardware qurğusu qurmaq əvəzinə, 4 -cü addımdan ATtiny84 üçün bitmiş konfiqurasiyadan başlamaq və tiny84 çipini tiny85 ilə əvəz etmək daha asan olar. Bütün lazımi avadanlıqlar artıq mövcuddur. Bu yanaşmanı istifadə edirsinizsə, tiny85 -i tapın ki, 3 və 4 -cü pinlər seriyalı kabel tx ilə üst -üstə düşsün və telləri qəbul etsin. Yalnız SPI interfeysinin aparıcı tellərinin ATtiny85 üçün lazım olan yerlərə uyğun olaraq dəyişdirilməsi məsələsidir.

Sıfırdan başlayarsanız, 3 -cü addımdakı ümumi addımları və yuxarıdakı əyilmə sxemini izləyin. Kod, 3 -cü addımdakı ATtiny84 üçün istifadə olunan eyni nəticələrlə eynidır - yükləmə zamanı heç bir titrəmə yoxdur; LED işləyərkən 2 saniyəlik fasilələrlə yanıb -sönür və seriyalı çıxış mesajları LED vəziyyətini izləyir.

Şəkil
Şəkil

Addım 6: ATtiny85 Case 2 - Tətbiq Girişini təcrid edin

Şəkil
Şəkil

Donanım qurğusu üçün, 5 -ci addımdakı konfiqurasiyadan başlayın və yuxarıdakı əyilmə diaqramında göstərildiyi kimi SPST açarını əlavə edin. Əslində tiny85 versiyası üçün bir anlıq keçiddən istifadə etdim və yoxlamanı bir az da asanlaşdırır. Açar çıxışının ATtiny84 konfiqurasiyasından 180 dərəcə döndüyünə diqqət yetirin. Bu dəyişiklik, 3 SPI siqnalının hamısı ATtiny85 üçün eyni tərəfdə olduğu üçün qoşulma tellərinin marşrutlaşdırılmasını asanlaşdırır.

ATtiny84 Addım 4 üçün eyni proqramı istifadə edin. Eyni ümumi nəticələr gözlənilir - SPST açarı açıldıqda/söndürüldükdə LED dəyişir və serial çıxış mesajları dəyişiklikləri sənədləşdirir. ATtiny85 üçün yuxu funksiyası işə salınmadığından Yuxuya get mesajları yoxdur. Eyni proqramdan istifadə olunsa da, ATtiny85 -in yalnız bir liman qeydiyyatçısına (Port 0) malik olduğunu nəzərə almaq üçün tətbiqdə əhəmiyyətli fərqlər var:

  1. SoftwareSerial indi seriyalı ünsiyyət üçün port 0 pin dəyişikliyi ayırır (Xatırladaq ki, ATtiny84 üçün port 1 -dən istifadə edə bildik.)
  2. SPST keçid ara verməsi xarici fasilə 0 (INT0) ilə həyata keçirilməlidir, çünki tək pin dəyişikliyi kəsilməsi SoftwareSerial tərəfindən ayrılır. Bu, pin dəyişdirmə kəsilmələrinin və xarici kəsilmələrin məntiqi olaraq müstəqil olduğunu və eyni liman qeydində istifadə edilə biləcəyini göstərir.
  3. Dəyişdirilmiş SoftwareSerial versiyasından istifadə edərək heç nə əldə edilmir - yalnız bir liman var və SoftwareSerial sinfi onu tutacaq. Bununla birlikdə, dəyişdirilmiş sinif hələ də bu addımın məqsədi ilə birbaşa əlaqəli olmayan bir dəyişikliyin qarşısını almaq üçün istifadə edilmişdir.

Tövsiyə: