Turinys:

ATtiny84/85 SPI sąsajos kaiščio pakartotinis naudojimas: 6 žingsniai
ATtiny84/85 SPI sąsajos kaiščio pakartotinis naudojimas: 6 žingsniai

Video: ATtiny84/85 SPI sąsajos kaiščio pakartotinis naudojimas: 6 žingsniai

Video: ATtiny84/85 SPI sąsajos kaiščio pakartotinis naudojimas: 6 žingsniai
Video: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, Lapkritis
Anonim
ATtiny84/85 SPI sąsajos kaiščio pakartotinis naudojimas
ATtiny84/85 SPI sąsajos kaiščio pakartotinis naudojimas

Šis nurodymas yra tolesnis nurodymas „ATtiny84/85 grandinės derinimas naudojant serijinę išvestį“ir pratęsia tą aparatinės ir programinės įrangos konfigūraciją, kad būtų išspręsta problema, susijusi su programinės įrangos atsisiuntimo kaiščių pakartotiniu naudojimu taikomojoje programoje. Iš viso tarp šios ir 1 pamokomos dalies aptariamos/demonstruojamos šios temos:

Tema 84 straipsnis 85
Serijinis ryšys naudojant „SoftwareSerial“klasę X X
Įrenginio kontaktų bendrinimas tarp programos ir atsisiuntimo X X
Smeigtuko keitimo pertrauka X
Išorinis pertraukimas X
Miego režimas POWER_DOWN; pabusti nutraukus X
Išspręskite „dauginti apibrėžtą“pertraukimo vektoriaus nuorodos klaidą, susijusią su „SoftwareSerial“ X
„ATtiny“įrenginių modifikavimas, atsisiuntimas, derinimas ir … kūrimo ciklas X X

Aparatinės įvesties/išvesties komponento pridėjimas prie vieno iš kaiščių, skirtų SPI programavimo sąsajai, kartais yra gerai, kartais ne. Pvz., Pridėjus šviesos diodą prie MISO, šviesos diodas mirksi atsisiuntimo metu ir tada jis yra prieinamas programai. Tačiau, pridėjus pjezo garsinį signalą prie MISO, pasigirs siaubingas girgždantis garsas, po kurio nepavyks atsisiųsti.

Šioje instrukcijoje paaiškinama, kaip naudoti 4x2: 1 multiplekserį, kad „atkurtumėte“SPI sąsajai priskirtų kaiščių MISO, MOSI ir SCK signalų naudojimą, apsaugodami juos atsisiuntimo metu. Pakartotiniam RESET kaiščio naudojimui reikia pakeisti saugiklį ir šis metodas neapima. Dvigubas kaiščių priskyrimas atliekamas naudojant multiplekserį, kad būtų galima perjungti programos ir programavimo įvestis, atsižvelgiant į tai, ar atsisiuntimas vyksta. Įtraukti kodai ir schemos tiek „ATtiny84“, tiek „ATtiny85“. Pirmiausia nagrinėjama ATiny84 konfigūracija, nes ji turi du įvesties/išvesties prievadus ir gali būti naudojama iliustruoti kai kurias papildomas problemas/sprendimus. Po tiny84 diskusijos aptariami tie patys scenarijai kaip ir ATtiny85.

1 veiksmas: reikalinga aparatinė įranga

Vaizdas
Vaizdas

Dauguma reikalingos techninės įrangos buvo išvardyti 1 dalyje, kurią galima nurodyti, todėl toliau pateikiama tik nauja aparatūra.

vardas Galimas šaltinis Kaip naudojamas
4x2: 1 multiplekseris Mouser Sudėtyje yra keturi 2 įvesties ir 1 išėjimo jungikliai, kurie yra SPI sąsajos signalų ir taikomųjų įėjimų/išėjimų bendrinimo mechanizmas.
SPST jungiklis Bet kokio tipo jungiklis (momentinis arba fiksuotas) veiks. Jungiklis naudojamas iliustruoti programos įvesties kaiščių bendrinimą.
10K rezistorius Ištraukiamas SPST jungiklio rezistorius, kad būtų išvengta plūduriuojančio įėjimo
Vaizdas
Vaizdas
Vaizdas
Vaizdas

Multiplekseris yra raktas, leidžiantis atskirti atsisiuntimo naudojimą nuo programos naudojimo. Bendras 4x2: 1 multipleksoriaus funkcionalumas yra gana paprastas, susidedantis iš 2 valdymo signalų ir 4 vienodai veikiančių jungiklių. Toliau aptariamas kiekvieno multiplekserio kaiščio elgesys:

Smeigtukas vardas Funkcija
15 G Kaip nurodyta tiesos lentelėje, multiplekseris veikia tik tada, kai G įjungimo kaištis yra žemas. Kadangi mes niekada nenorime visiškai išjungti multipleksoriaus, kaištis 15 bus prijungtas tiesiai prie žemės.
2-4; 5-7; 9-11;12-14 A (įvestis), B (įvestis), Y (išvestis) Yra keturi 2 įėjimai; 1 išėjimo jungikliai, kurių kiekviena 3 kaiščių grupė iš eilės sunumeruota tokia tvarka: A (įvestis), B (įvestis), Y (išvestis), pvz. 1 jungikliui; 2 kaištis = 1A; kaištis 3 = 1B; 4 kaištis = 1Y.
1 Pasirinkite Kai „Select“yra žemas, jungiklio įėjimas A yra prijungtas prie susijusio jungiklio išvesties kaiščio, Y. Kai pasirinkimas yra didelis, jungiklio B įvestis yra prijungta prie išvesties. Jungikliai vienu metu valdomi pasirinkimo signalu ir veikia vienodai.
8 GND multiplekserio IC įžeminimas
16 VCC Multiplekso IC maitinimas

2 veiksmas: bandymų atvejų apžvalga

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Du kaiščių pakartotinio naudojimo scenarijai yra pagrįsti tuo, ar kaištis yra programos įvestis, ar išvestis. Įvesties tvarkymo tvarka visada yra ta pati; taip pat taikomųjų programų išvesties procedūra yra identiška, nepriklausomai nuo aparatinės įrangos komponento. Nepaisant to, paaiškinimas yra lengvesnis ir, tikiuosi, aiškesnis, jei pateikiami konkretūs pavyzdžiai. Minimalistiniai dviejų atvejų išdėstymai pateikti aukščiau. Dėl išsamesnės sąrankos vėliau jungtys taps šiek tiek voverių lizdo, todėl gali būti naudinga grįžti prie šių švaresnių schemų.

„RESET“yra puikus pasirinkimas multiplekserio pasirinkimo signalui, nes atsisiuntimo metu jis yra žemas, bet baigiantis atsisiuntimui grįžta atgal. Atminkite, kad bet kuris iš multiplekserio jungiklių gali būti naudojamas abiem atvejais, nes visi jungikliai veikia vienodai. Be to, nė vienas iš pavyzdžių nėra „realistinis“; jie buvo pasirinkti kaip paprasčiausias būdas parodyti izoliacijos metodus

  1. Išvesties dėklas: LED išėjimas iš ATtiny84 kaiščio 4 (SCK) yra izoliuotas naudojant 2 multiplekserio jungiklį

    • prijunkite multiplekserio kaištį 2A prie žemės
    • prijunkite multiplekserio kaištį 2B prie ATtiny85 kaiščio 4
    • prijunkite 2Y išvestį prie LED anodo

      • Tikėtini Rezultatai:

        • Atsisiuntimo metu šviesos diodas nedega, nes prijungtas prie 2A, įžeminimo
        • Šviesos diodas prijungtas prie programos išvesties kaiščio 4 po atsisiuntimo per 2B ir pradeda mirksėti
  2. Įvesties dėklas: SPST jungiklio įėjimas į „ATtiny84“kaištį 6 (MOSI) yra izoliuotas naudojant 3 multiplekserio jungiklį

    • MOSI laidas iš AVR programuotojo antraštės perkeliamas į 3A
    • jungiklio įėjimas 3B yra prijungtas prie SPST išvesties
    • 3Y išėjimas yra prijungtas prie ATtiny84 6 kaiščio

      • 3A, MOSI, atsisiuntimo metu prijungtas prie 6 kaiščio
      • 3B, SPST išvestis, po atsisiuntimo prijungta prie 6 kaiščio

1 atvejis yra sėkmingas, jei šviesos diodas nemirksi atsisiunčiant programą ir mirksi kas dvi sekundes po atsisiuntimo, kaip tikimasi, valdant programą. Be izoliacijos šviesos diodas mirksi atsisiuntimo metu, nes yra tiesiogiai prijungtas prie SCK signalo, kuris keičia būseną į laikrodžio duomenų priėmimo/perdavimo būseną.

2 atvejis yra sėkmingas, jei MOSI signalas siunčiamas į ATtiny84 atsisiuntimo metu, t. Y. Atsisiuntimas nepavyksta, o po atsisiuntimo šviesos diodas reaguoja į SPST įjungimą/išjungimą. 2 atvejis apsaugo nuo vienos mažai tikėtinos atsisiuntimo klaidos. Be izoliacijos, SPST jungiklis sukels gedimą, jei 1) bus naudojamas fiksuotas jungiklis ir 2) atsisiuntimo metu jungiklis bus įjungtas. Kai jungiklis yra izoliuotas multiplekseriu, jis jokiomis aplinkybėmis negali sukelti atsisiuntimo gedimo. Šiek tiek ištempta, bet guodžia mus, senus žmones.

Viena iš multiplekserio naudojimo pasekmių yra ta, kad aparatūros komponento nebegalima tiesiogiai prijungti prie mikrovaldiklio įvesties/išvesties kaiščio. Tai yra šiek tiek nepatogu, tačiau leidžia komponentą bandymo metu likti ant duonos lentos kartu su kita taikomosios įrangos įranga, o baigus bandymą jį galima perkelti atgal į tinkamą vietą.

3 žingsnis: „ATtiny84“1 atvejis - izoliuokite programos išvestį

Vaizdas
Vaizdas

Šiame žingsnyje aprašoma programos išvesties kaiščio bendrinimo su atsisiuntimo signalu sąranka. Pavyzdys yra šviesos diodas, pritvirtintas prie 4 kaiščio (SCK). Naudojant esamą šviesos diodą kaip pavyzdį galima pabrėžti multiplekserio pridėjimą prie 1 dalies aparatinės ir programinės įrangos aplinkos.

  • Techninė įranga
    • Pridėkite multiplekserį prie duonos lentos toje pačioje vietoje, kaip parodyta aukščiau esančioje matavimo diagramoje. Multiplekseris yra nukreiptas į centrą, kad būtų vietos SPST jungikliui, kurio reikia 2 atveju.
    • Išplėskite RESET signalą iki multiplekserio, pridedant laidą (siūlau geltoną) nuo ATtiny84 kaiščio 11 prie multiplekserio kaiščio 1.
    • Likusi aparatūros sąranka yra tokia, kaip nurodyta 2 veiksme

      • prijunkite multiplekserio kaištį 2A tiesiai prie žemės
      • prijunkite 2B kaištį prie ATtiny84 kaiščio 4
      • prijunkite 2Y išvestį prie LED anodo

        • Tikėtini Rezultatai:

          • atsisiuntimo metu 2Y yra prijungtas prie žemės (2A), todėl šviesos diodas lieka neišjungtas
          • Atsisiuntus 2Y yra prijungtas prie ATtiny84 kaiščio 4 - programos LED valdymas
  • Programinė įranga
    • 1 dalies kodas naudojamas pakartotinai; galima rasti iš 1 dalies, kuri yra pamokoma, o ne dubliuojama čia
    • Įkelkite ir sukompiliuokite 1 dalies programą „Arduino IDE“
    • Prijunkite „Tiny AVR“programuotoją prie kompiuterio USB prievado
    • Prijunkite „Adafruit“USB prie serijos kabelio prie antrojo USB prievado

      • Sukuriamas COM prievadas, kuris automatiškai pasiekiamas IDE prievadų sąraše
      • Paleiskite COM langą
    • Atsisiųskite sukurtą kodą į ATtiny84

Taikomosios programos rezultatai yra tokie patys kaip ir 1 dalyje, nes vienintelis pakeitimas buvo šviesos diodo perkėlimas į „apsaugotą“vietą: šviesos diodas mirksi 2 sekundžių intervalu; serijinė išvestis yra ta pati. Vienintelis skirtumas, kuris turėtų atsirasti, yra tas, kad atsisiuntimo metu šviesos diodas nebemirksi, nes per tą laiką jis yra prijungtas prie žemės per multiplekserio kaištį 2A.

Vaizdas
Vaizdas

4 veiksmas: „ATtiny84“2 atvejis - izoliuokite programos įvestį

Vaizdas
Vaizdas

Šis žingsnis grindžiamas ankstesnio išvesties izoliavimo atvejo sąranka. Techninės įrangos pakeitimai apima SPST jungiklio prijungimą prie ATtiny84 kaiščio 6 (MOSI) per multiplekserį. Taigi techninės įrangos pakeitimai yra minimalūs, tačiau yra keletas programinės įrangos pakeitimų, leidžiančių SPST jungikliui valdyti šviesos diodą naudojant kaiščio keitimo pertrauką. Atnaujintas kodas yra šio skyriaus apačioje. Kodas turėtų būti nukopijuotas į „Arduino IDE“; pasiūlykite jį išsaugoti pavadinimu „Multiplexer_Input“. (Atsiprašau už šios dalies trukmę, bet tai yra pamokymo esmė ir manau, kad ji geriau skaitoma kaip monolitinis, o ne įterpiamas dirbtinių pertraukų.)

Atnaujinti Vieta Paskirtis
įtraukti „nulaužtą“„SoftwareSerial“klasę įtraukti skyrių Šviesos diodas dabar valdomas SPST jungikliu per kaiščio keitimo pertrauką. „SoftwareSerial“klasė turi būti pakeista, nes priešingu atveju ji paskirs VISUS kaiščio keitimo pertraukimo vektorius. Tai sukelia „kelių apibrėžimų“nuorodos klaidą (0 prievado) vektoriui, priskirtam SPST jungikliui. Nulaužta „SoftwareSerial“versija turėtų būti patalpinta tame pačiame kataloge kaip ir programa, kad ji paveiktų tik šią programą.
SPST įvesties kaiščio apibrėžimas įtraukti/apibrėžimo skyrių SPST įvesties priskyrimas įrenginio kaiščiui. Smeigtukas yra skirtas konkrečiam įrenginiui, todėl pridedamas prie #ifdef ATtiny8x skyriaus.
SPST įvesties kaiščio režimas sąrankos funkcija SPST kaištis sukonfigūruotas kaip Įvestis
Konfigūruokite SPST kaiščio pertraukimą sąrankos funkcija Pertraukimo vektorius priskiriamas SPST įvesties kaiščiui, kad perjungimo būsena sukeltų pertrauką. Konfigūracijos registrai ir pertraukimo tipas priklauso nuo įrenginio. Kad kodas būtų kuo paprastesnis, skirtumai tvarkomi #if apibrėžtoje skiltyje
Nustatykite užbaigtą serijos pranešimą sąrankos funkcija Sąrankos užbaigimo serijinės išvesties pranešimas pakeistas, kad atspindėtų „Multiplexer Input“programą
Pridėkite SPST jungiklio ISR funkciją kodų skyrius Pridedamas SPST kaiščio keitimo nutraukimo ISR. Kodas yra įprastas, tačiau naudojamas vektorius yra skirtas konkrečiam įrenginiui ir yra apibrėžtas nuo įrenginio priklausančiose skiltyse programos viršuje. Siekiant patikrinti, ar ISR yra įjungtas, LED būsena keičiama. Nors realioje programoje „ne-ne“, generuojamas serijinės išvesties pranešimas, atspindintis naują šviesos diodo būseną.
Pakeiskite ciklo apdorojimą kilpos funkcija Dabar ISR valdo LED įjungimą ir išjungimą, kad funkcionalumas būtų pašalintas iš ciklo. „ATtiny84“pridedamas miego režimo skambutis kaip „papildomas“. Šiai programai „ATtiny85“miegas neveikia; galbūt dėl programinės įrangos serijos klasės trukdžių, nes ji veikia pašalinus „SoftwareSerial“.
Pridėkite miego režimą kodų skyrius Miego funkcija nebūtina norint parodyti multiplekserio naudojimą. Tik pridėta, nes paprastai norėtųsi palaukti, kol įvestis POWER_DOWN režimu sutaupys energijos, o ne toliau veikti per programos ciklą nieko nedarydama, kol neįvyks įvestis.

Pakeiskite „SoftwareSerial“klasės kodą

„SoftwareSerial“klasę reikia pakeisti taip, kad ji neužstotų visų kaiščių keitimo pertraukų prievadų. „SoftwareSerial“klasės kodas yra adresu

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

Norėdami rasti kodo pakeitimų pradžios vietą, suraskite „PCINT0_vect“programinėje įrangoje „SoftwareSerial.cpp“. Pridėkite šį kodą prieš pat esamą teiginį #if define (PCINT0_vect).

#if apibrėžta (_ AVR_ATtiny84_)

#define MYPORT PCINT1_vect #elif define (_ AVR_ATtiny85_) #define MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_interrupt (); }

Dabar pakomentuokite esamą kodo bloką, kuris paskirsto uosto nutraukimo vektorius, kaip nurodyta toliau (tiesiog pridėkite pradžios ir pabaigos bloko komentarų simbolius / * ir * /):

/*

#if apibrėžta (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt (); } #endif #if apibrėžtas (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect)); } #endif #if apibrėžtas (PCINT2_vect) ISR (PCINT2_vect, ISR_ALIASOF (PCINT0_vect)); #endif #if apibrėžta (PCINT3_vect) ISR (PCINT3_vect, ISR_ALIASOF (PCINT0_vect)); #endif */

Konfigūruokite aparatūrą

SPST jungiklis yra prijungtas prie ATtiny84 kaiščio 6 (MOSI), kaip aprašyta 2 veiksme. Patogumui procedūra čia dubliuojama.

  • prijunkite jungiklio įvestį 3A prie „Tiny AVR“programuotojo antraštės MOSI laido
  • prijunkite 3B prie SPST jungiklio įvesties kaiščio
  • prijunkite 3Y prie ATtiny84 kaiščio 6

    • REZULTATAI:

      • 3A, MOSI, atsisiuntimo metu bus nukreiptas į „ATtiny84“kaištį 6
      • 3B, SPST išvestis, po atsisiuntimo bus susietas su 6 kaiščiu

Paleiskite programą

Prieš pradėdami važiuoti, nustatykite SPST jungiklį į išjungimo padėtį. Priešingu atveju šviesos diodas įsijungs, kai jungiklis bus išjungtas, ir atvirkščiai. Atlikite 3 veiksmo procedūrą, kad įkeltumėte, sudarytumėte ir atsisiųstumėte programos įvesties programą naudodami „Arduino IDE“. Kaip ir anksčiau, atsisiuntimo metu šviesos diodas neturėtų mirksėti, todėl vienintelė nuoroda, kad programa parengta ir veikia, bus serijinis pranešimas sąrankos procedūros pabaigoje: SETUP Complete - Įvesties pavyzdys

Šiuo metu programa laukia įvesties iš SPST jungiklio. Įjungus jungiklį, įjungiamas šviesos diodas; perjungus atgal į išjungimo padėtį, šviesos diodas užgęsta. Išvesties pranešimai patvirtina, kad ISR buvo iškviestas (ISR: Led HIGH, ISR: Led LOW). Atkreipkite dėmesį, kad serijinių pranešimų tvarka yra GO GO SLEEP, pirmiausia laukiant pasikeitimo būsenos; gavus jungiklio įvestį, iškviečiamas ISR, perjungiamas šviesos diodas ir dokumentuojamas pakeitimas; tada apdorojimas įsijungia po miego skambučio, nes pertrauka pažadina procesorių.

Vaizdas
Vaizdas

ŠIOS INSTRUKCIJOS PROGRAMA:

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

// 2 DALIS: Taikymas/atsisiuntimo įrenginio PIN kodo bendrinimas //. Pakeičiamas 1 dalies kodas, kad būtų galima pakartotinai naudoti kaiščius // priskirtus SPI programavimo sąsajai //. „Comon“kodas ATtiny85 ir ATtiny84 // *************************************** ********************************* apdorojimo kodas yra įprastas, naudojami smeigtukai priklauso nuo įrenginio #jei apibrėžta (_ AVR_ATtiny84_) || apibrėžta (_ AVR_ATtiny84A_) #define ledPin 4 // Įjungta/išjungta prijungta LED įjungta/išjungta #define rxPin 9 // Sąsaja naudojama serijiniam priėmimui #define txPin 10 // Sąsaja naudojama serijiniam perdavimui #define SpstPin 6 // Įvestis iš SPST jungiklio (MOSI) #define ISR_VECT PCINT0_vect // SPST jungiklis PIN keitimo pertraukimo vektorius #elif apibrėžtas (_ AVR_ATtiny85_) #define ledPin 1 #define rxPin 4 #define txPin 3 #define SpstPin 2 // Įvestis iš SPST jungiklio (INT0_de) // SPST jungiklis Smeigtuko keitimo pertraukimo vektorius #else #error Šis projektas palaiko tik ATiny84 ir ATtiny85 Šis projektas palaiko #endif // Sukurkite programinės įrangos serijos klasės egzempliorių, nurodantį, kuris įrenginys // smeigtukai turi būti naudojami programinei įrangai priimti ir perduoti, txPin); // ------------------------------------------------ ------------------------ // Inicijuoti apdorojimo išteklius // ------------------- -------------------------------------------------- --- void setup () {mySerial.begin (9600); // Pradėti serijinio apdorojimo uždelsimą (2000); // Suteikite „Serial Com“prievadui laiko paleisti. // kitaip, greičiausiai trūksta 1 -ojo išėjimo arba jis yra sugadintas pinMode (ledPin, OUTPUT); // Konfigūruoti LED kaištį OUTPUT pinMode (SpstPin, INPUT); // SPST jungiklio kaiščio konfigūravimas kaip INPUT #if apibrėžta (_ AVR_ATtiny84_) || [_AVR_ATtiny84A_] // nustatyti kaiščio keitimo pertrauką, kad būtų galima valdyti jungiklio įvestį 6 kaištyje (MOSI) GIMSK | = (1 <

5 žingsnis: „ATtiny85“1 atvejis - izoliuokite programos išvestį

Vaizdas
Vaizdas

Užuot sukūrę pasikartojančią „ATtiny85“aparatinės įrangos sąranką, tikriausiai lengviau pradėti nuo baigtos „ATtiny84“konfigūracijos nuo 4 veiksmo ir pakeisti „tiny84“lustą „tiny85“. Tada visa reikalinga įranga jau yra prieinama. Jei naudojate šį metodą, suraskite tiny85 taip, kad 3 ir 4 kaiščiai sutaptų su serijiniu kabeliu tx ir gautų laidus. Tada tereikia perkelti SPI sąsajos laidus, kad jie atitiktų reikiamas ATtiny85 vietas.

Jei pradedate nuo nulio, tiesiog atlikite bendruosius 3 veiksmo veiksmus ir aukščiau pateiktą matavimo schemą. Kodas yra toks pat, kaip ir „ATtiny84“, atliktas 3 veiksme, ir tikimasi tų pačių rezultatų - atsigavimo metu nemirksi; veikiant, šviesos diodas mirksi 2 sekundžių intervalais, o serijinės išvesties pranešimai seka LED būseną.

Vaizdas
Vaizdas

6 veiksmas: „ATtiny85“2 atvejis - izoliuokite programos įvestį

Vaizdas
Vaizdas

Norėdami nustatyti aparatinę įrangą, pradėkite nuo konfigūracijos nuo 5 veiksmo ir pridėkite SPST jungiklį, kaip nurodyta aukščiau esančioje matavimo diagramoje. Aš iš tikrųjų naudojau momentinį jungiklį „tiny85“versijai ir tai šiek tiek palengvina patikrinimą. Atkreipkite dėmesį, kad jungiklio išėjimas yra pasuktas 180 laipsnių nuo ATtiny84 konfigūracijos. Šis pakeitimas palengvina prijungimo laidų nukreipimą, nes visi 3 SPI signalai yra toje pačioje ATtiny85 pusėje.

Naudokite tą pačią programą kaip ir ATtiny84 4 veiksme. Tikimasi tų pačių bendrų rezultatų - šviesos diodų būsena pasikeičia, kai įjungiamas/išjungiamas SPST jungiklis, o serijinės išvesties pranešimai dokumentuoja pakeitimus. Trūksta pranešimų „GO TO SLEEP“, nes „ATtiny85“miego funkcija nėra naudojama. Nepaisant to, kad naudojama ta pati programa, jos įgyvendinimas labai skiriasi, nes ATtiny85 turi tik vieną prievadų registrą (0 prievadas):

  1. „SoftwareSerial“dabar serijiniam ryšiui skiria 0 prievado keitimo pertrauką (prisiminkime, kad ATtiny84 galėjome naudoti 1 prievadą.)
  2. SPST jungiklio pertraukimas turi būti įgyvendintas su išoriniu pertraukimu 0 (INT0), nes „SoftwareSerial“skiria vienintelį kaiščio keitimo pertrauką. Tai iliustruoja, kad kaiščių keitimo pertraukos ir išorinės pertraukos yra logiškai nepriklausomos ir gali būti naudojamos tame pačiame prievadų registre.
  3. Naudojant modifikuotą „SoftwareSerial“versiją nieko nepavyksta gauti - yra tik vienas prievadas ir „SoftwareSerial“klasė jį sugriebs. Tačiau modifikuota klasė vis tiek buvo naudojama tik tam, kad būtų išvengta pakeitimo, kuris nėra tiesiogiai susijęs su šio žingsnio tikslu.

Rekomenduojamas: