Talaan ng mga Nilalaman:

ATtiny84 / 85 SPI Interface Pin Reuse: 6 Mga Hakbang
ATtiny84 / 85 SPI Interface Pin Reuse: 6 Mga Hakbang

Video: ATtiny84 / 85 SPI Interface Pin Reuse: 6 Mga Hakbang

Video: ATtiny84 / 85 SPI Interface Pin Reuse: 6 Mga Hakbang
Video: Программирование ATtiny85/84 с помощью Arduino Uno (ATTinyCore) 2024, Nobyembre
Anonim
ATtiny84 / 85 SPI Interface Pin Reuse
ATtiny84 / 85 SPI Interface Pin Reuse

Ang itinuturo na ito ay isang follow up sa "ATtiny84 / 85 In-circuit Debugging na may Serial Output" na itinuturo at pinahahaba ang pagsasaayos ng hardware at software upang matugunan ang isyu ng muling paggamit ng mga pag-download ng pin ng programa ng program ng application. Sa kabuuan, sa pagitan nito at ng bahaging 1 na itinuturo, ang mga sumusunod na paksa ay tinalakay / ipinakita:

Paksa ATtiny84 ATtiny85
Serial Communication gamit ang klase ng SoftwareSerial X X
Ang pagbabahagi ng mga pin ng aparato sa pagitan ng application at pag-download X X
Pin Baguhin makagambala X
Panlabas na makagambala X
Matulog sa POWER_DOWN mode; paggising sa abala X
Magtrabaho sa paligid para sa "multiply na tinukoy" makagambala error sa pag-link ng vector na nauugnay sa SoftwareSerial X
In-circuit na baguhin, i-download, i-debug,… ikot ng pag-unlad para sa mga ATtiny na aparato X X

Ang pagdaragdag ng isang bahagi ng hardware na I / O sa isa sa mga pin na nakatuon sa interface ng SPI na programa ay minsan OK, minsan hindi. Halimbawa, ang pagdaragdag ng isang LED sa MISO ay sanhi lamang ng pag-flicker ng LED sa panahon ng pag-download at pagkatapos ay magagamit ito para sa application. Gayunpaman, ang pagdaragdag ng isang piezo buzzer sa MISO ay magreresulta sa isang kakila-kilabot na tunog ng pag-screeching na sinusundan ng pagkabigo sa pag-download.

Ang itinuturo na ito ay nagpapaliwanag kung paano gumamit ng isang 4x2: 1 multiplexer upang "mabawi" ang paggamit ng mga pin na nakatalaga sa SPI interface na MISO, MOSI, at mga signal ng SCK sa pamamagitan ng pagprotekta sa kanila sa panahon ng pag-download. Ang muling paggamit ng RESET pin ay nangangailangan ng pagbabago ng piyus at hindi sakop ng pamamaraang ito. Ang dobleng pagtatalaga ng mga pin ay nagagawa sa pamamagitan ng paggamit ng multiplexer upang lumipat sa pagitan ng aplikasyon at mga pag-input ng programa depende sa kung isinasagawa ang pag-download. Ang code at mga eskematiko ay kasama para sa parehong ATtiny84 at ATtiny85. Ang pagsasaayos ng ATiny84 ay direktang hinarap dahil mayroon itong dalawang I / O port at maaaring magamit upang ilarawan ang ilang mga karagdagang problema / solusyon. Kasunod sa maliit na talakayan84, tinalakay ang parehong mga sitwasyon para sa ATtiny85.

Hakbang 1: Kinakailangan ang Hardware

Larawan
Larawan

Karamihan sa kinakailangang hardware ay nakalista sa bahagi 1 na itinuturo kaya ang bagong hardware lamang ang nakalista sa ibaba.

Pangalan Posibleng Pinagmulan Paano Ginamit
4x2: 1 Multiplexer Mouser Naglalaman ng apat na 2-input; 1-output switch na kung saan ay ang mekanismo kung saan ibinabahagi ang mga signal ng SPI Interface at application I / O.
Lumipat ang SPST Anumang uri ng switch (panandalian o latched) ay gagana. Ginagamit ang switch upang ilarawan ang pagbabahagi ng pin para sa isang input ng application.
10K risistor Hilahin-down na risistor para sa switch ng SPST upang maiwasan ang isang lumulutang na input
Larawan
Larawan
Larawan
Larawan

Ang multiplexer ay ang susi upang ihiwalay ang paggamit ng pag-download ng pin mula sa paggamit ng application. Ang pangkalahatang pag-andar ng 4x2: 1 multiplexer ay medyo straight-forward na binubuo ng 2 control signal at 4 na magkaparehong gumagana na switch. Ang pag-uugali ng bawat multiplexer pin ay tinalakay sa ibaba:

Pin Pangalan Pag-andar
15 G Tulad ng ipinahiwatig sa talahanayan ng katotohanan, ang multiplexer ay gagana lamang kapag ang pinapagana ng G ay mababa. Dahil hindi namin nais na ganap na huwag paganahin ang multiplexer, ang pin 15 ay konektado direkta sa lupa.
2-4; 5-7; 9-11;12-14 A (input), B (input), Y (output) Mayroong apat na 2-input; 1-output switch sa bawat pangkat ng 3 pin na magkakasunod na bilang sa pagkakasunud-sunod ng A (input), B (input), Y (output) hal. para sa switch 1; pin 2 = 1A; pin 3 = 1B; pin 4 = 1Y.
1 Pumili Kapag ang Select ay mababa, ang switch input A ay konektado sa nauugnay na switch output pin, Y. Kapag ang select ay mataas, ang switch input B ay konektado sa output sa halip. Ang mga switch ay kinokontrol nang sabay-sabay ng Select signal at function na magkapareho.
8 GND multiplexer IC ground
16 VCC lakas na multiplexer IC

Hakbang 2: Pangkalahatang-ideya ng Mga Kaso sa Pagsubok

Larawan
Larawan
Larawan
Larawan

Ang dalawang mga sitwasyon para sa muling paggamit ng pin ay batay sa kung ang pin ay isang application input o output. Ang pamamaraan para sa paghawak ng anumang input ay palaging pareho; Gayundin ang pamamaraan para sa mga output ng application ay magkapareho hindi alintana ang bahagi ng hardware. Kahit na, ang paliwanag ay mas madali, at inaasahan na mas malinaw, kung ang mga tukoy na halimbawa ay ibinigay. Ang mga minimalist na layout para sa dalawang kaso ay ipinapakita sa itaas. Para sa mga detalyadong pag-setup sa paglaon sa mga koneksyon ay naging isang maliit na pugad ng mga squirrels kaya't maaaring maging kapaki-pakinabang na mag-refer muli sa mga mas malinis na diagram.

Ang RESET ay ang perpektong pagpipilian para sa multiplexer Select signal dahil mababa ito sa panahon ng pag-download ngunit babalik nang mataas kapag nakumpleto ang pag-download. Tandaan na ang alinman sa mga switch ng multiplexer ay maaaring magamit para sa alinmang kaso dahil ang lahat ng mga switch ay kumikilos nang magkatulad. Gayundin, alinman sa mga halimbawa ay "makatotohanang"; napili sila sa halip bilang ang pinaka-prangkang paraan upang ilarawan ang mga diskarte ng paghihiwalay

  1. Kaso ng Output: Ang LED output mula sa ATtiny84 pin 4 (SCK) ay nakahiwalay gamit ang multiplexer switch 2

    • ikonekta ang multiplexer pin 2A sa lupa
    • ikonekta ang multiplexer pin 2B sa ATtiny85 pin 4
    • ikonekta ang output 2Y sa LED anode

      • Inaasahang resulta:

        • Ang LED ay naka-off sa panahon ng pag-download dahil konektado sa 2A, ground
        • Ang LED ay nakakabit sa application output pin 4 pagkatapos ng pag-download sa pamamagitan ng 2B at nagsimulang magpikit
  2. Kaso ng Pag-input: Ang input ng SPST switch sa ATtiny84 pin 6 (MOSI) ay nakahiwalay gamit ang multiplexer switch 3

    • Ang MOSI lead wire mula sa AVR Programmer header ay inilipat sa 3A
    • ang switch input 3B ay konektado sa output ng SPST
    • ang output 3Y ay konektado sa ATtiny84 pin 6

      • Ang 3A, MOSI, ay konektado sa pin 6 habang ina-download
      • Ang 3B, output ng SPST, ay konektado sa pin 6 pagkatapos ng pag-download

Ang Kaso 1 ay matagumpay kung ang LED ay hindi pumitik habang nagda-download ng programa at pagkatapos ay kumukurap bawat dalawang segundo kasunod ng pag-download tulad ng inaasahan sa ilalim ng kontrol ng programa. Nang walang pag-iisa ang LED ay magpapitik sa panahon ng pag-download dahil konektado ito nang direkta sa signal ng SCK, na binabago ang estado sa data ng orasan na natanggap / nagpapadala.

Ang case 2 ay matagumpay kung ang signal ng MOSI ay naipasa sa ATtiny84 habang nagda-download, ibig sabihin, hindi mabibigo ang pag-download, at ang LED ay tumutugon sa SPST switch on / off pagkatapos ng pag-download. Pinipigilan ng Kaso 2 ang isang malamang na hindi pagkabigo sa pag-download. Nang walang paghihiwalay, ang switch ng SPST ay magdudulot ng kabiguan kung 1) isang latched switch ang ginamit at 2) ang switch ay naiwan sa on na posisyon habang nagda-download. Kapag ihiwalay ng multiplexer, ang switch ay hindi maaaring maging sanhi ng pagkabigo sa pag-download sa ilalim ng anumang mga pangyayari. Medyo isang kahabaan ngunit aliw para sa amin mga matatandang tao.

Ang isang bunga ng paggamit ng multiplexer ay ang sangkap ng hardware na hindi na makakonekta nang direkta sa microcontroller I / O pin. Ito ay medyo hindi maginhawa ngunit pinapayagan ang sangkap na manatili sa breadboard habang sinusubukan kasama ang iba pang mga hardware ng application, at maaaring ilipat pabalik sa tamang lokasyon nito kapag nakumpleto ang pagsubok.

Hakbang 3: ATtiny84 Kaso 1 - Ihiwalay ang Output ng Application

Larawan
Larawan

Inilalarawan ng hakbang na ito ang pag-set up para sa pagbabahagi ng isang output output pin na may isang signal ng pag-download. Ang halimbawang ginamit ay ang LED na nakakabit sa pin 4 (SCK). Ang paggamit ng umiiral na LED bilang halimbawa ay nagbibigay-daan sa diin sa pagdaragdag ng multiplexer sa bahagi na 1 hardware at software environment.

  • Hardware

    • Idagdag ang multiplexer sa breadboard sa kamag-anak na lokasyon na ipinakita sa fritzing diagram sa itaas. Ang multiplexer ay nakaposisyon patungo sa gitna upang payagan ang silid para sa SPST switch na kinakailangan sa Kaso 2.
    • Palawakin ang signal ng RESET sa multiplexer sa pamamagitan ng pagdaragdag ng isang lead wire (magmungkahi ng dilaw) mula sa ATtiny84 pin 11 hanggang sa multiplexer pin 1.
    • Ang natitirang pag-setup ng hardware ay tulad ng ibinigay sa Hakbang 2

      • ikonekta ang multiplexer pin 2A nang direkta sa lupa
      • ikonekta ang pin 2B sa ATtiny84 pin 4
      • ikonekta ang output 2Y sa LED anode

        • Inaasahang resulta:

          • sa panahon ng pag-download 2Y ay konektado sa lupa (2A) kaya't ang LED ay mananatiling patay
          • Pagkatapos ng pag-download 2Y ay konektado sa ATtiny84 pin 4 - application LED control
  • Software

    • Ang bahagi ng 1 code ay muling ginamit; magagamit mula sa bahaging 1 na itinuturo sa halip na doble dito
    • I-load at ipagsama ang part 1 na programa sa Arduino IDE
    • I-plug ang Tiny AVR programmer sa isang PC USB port
    • I-plug ang Adafruit USB sa Serial cable sa isang pangalawang USB port

      • Ang isang COM port ay nilikha at awtomatikong ginawang magagamit sa listahan ng port ng IDE
      • Ilunsad ang window ng COM
    • I-download ang naipon na code sa ATtiny84

Ang mga resulta ng programa ng aplikasyon ay kapareho ng para sa bahaging 1 dahil ang pagbabago lamang ay ilipat ang LED sa isang "protektadong" lokasyon: Ang LED ay kumikislap sa 2 segundo na agwat; serial output ay pareho. Ang isang pagkakaiba na dapat mangyari ay ang LED ay hindi na mga flicker habang nagda-download dahil, sa oras na iyon, ito ay konektado sa lupa sa pamamagitan ng multiplexer pin 2A.

Larawan
Larawan

Hakbang 4: ATtiny84 Kaso 2 - Ihiwalay ang Input ng Application

Larawan
Larawan

Bumubuo ang hakbang na ito sa pag-set up para sa dating kaso ng paghihiwalay ng output. Ang mga pagbabago sa hardware ay binubuo ng paglakip ng isang SPST switch sa ATtiny84 pin 6 (MOSI) sa pamamagitan ng multiplexer. Kaya't ang mga pagbabago sa hardware ay minimal ngunit maraming mga pagbabago sa software upang payagan ang SPST switch na kontrolin ang LED gamit ang isang pagbabago ng pin na makagambala. Ang na-update na code ay kasama sa ilalim ng seksyong ito. Ang code ay dapat makopya sa Arduino IDE; iminumungkahi na i-save ito sa ilalim ng pangalang Multiplexer_Input. (Humihingi ako ng paumanhin para sa haba ng seksyon na ito ngunit ito ang puso ng layunin ng itinuro at sa tingin ko mas mababasa ito bilang isang monolith kaysa sa pagpasok ng mga artipisyal na pahinga.)

Update Lokasyon Layunin
isama ang "na-hack" na klase ng SoftwareSerial isama ang seksyon Ang LED ay kinokontrol ngayon ng SPST switch sa pamamagitan ng isang pin na pagbabago na nakakagambala. Ang klase ng SoftwareSerial ay dapat mabago dahil kung hindi man ay naglalaan ito ng LAHAT ng pagbabago ng pin na nagagambala ng mga vector. Nagdudulot ito ng isang error sa pag-link na "maraming kahulugan" para sa (port 0) na vector na nakatalaga sa switch ng SPST. Ang na-hack na bersyon ng SoftwareSerial ay dapat ilagay sa parehong direktoryo ng programa upang makakaapekto lamang ito sa application na ito.
Kahulugan ng input ng input ng SPST isama / seksyon ng kahulugan pagtatalaga ng input ng SPST sa isang pin ng aparato. Ang pin ay tukoy sa aparato kaya idinagdag ito sa seksyon ng #ifdef ATtiny8x.
SPST input pin mode pag-andar ng pag-setup Ang SPST pin ay naka-configure bilang isang INPUT
I-configure ang makagambala na pin ng SPST pag-andar ng pag-setup Ang makagambala na vector ay nakatalaga sa SPST input pin upang ang isang pagbabago ng estado ng switch ay nagiging sanhi ng isang nakakagambala. Ang mga rehistro ng pagsasaayos at uri ng nakakagambala ay tukoy sa aparato. Upang gawing prangka ang code hangga't maaari, ang mga pagkakaiba ay hawakan sa loob ng isang # kung tinukoy na seksyon
I-setup ang kumpletong serial message pag-andar ng pag-setup Ang kumpletong pag-setup ng mensahe ng serial output ay binago upang maipakita ang application na Multiplexer Input
Magdagdag ng SPST switch ISR function seksyon ng code Ang ISR para sa pag-abala ng pagbabago ng pin ng SPST ay idinagdag. Karaniwan ang code ngunit ang ginamit na vector ay tukoy sa aparato at tinukoy sa mga seksyon na umaasa sa aparato sa tuktok ng programa. Upang mapatunayan na ang ISR ay naaktibo, ang estado ng LED ay binago. Bagaman isang hindi-hindi sa isang tunay na application, isang serial na mensahe ng output ay nabuo na sumasalamin sa bagong estado ng LED.
Baguhin ang pagproseso ng loop pagpapaandar ng loop Kinokontrol ng ISR ngayon ang pag-on at pag-off ng LED upang ang pagpapaandar ay tinanggal mula sa gawain ng loop. Ang isang tawag sa gawain sa pagtulog ay idinagdag para sa ATtiny84 bilang isang uri ng isang "extra". Para sa application na ito, hindi gagana ang pagtulog ng ATtiny85; marahil dahil sa panghihimasok ng klase ng Software Serial dahil gumagana ito sa SoftwareSerial na tinanggal.
Magdagdag ng gawain sa pagtulog seksyon ng code Ang pagpapaandar sa pagtulog ay hindi kinakailangan upang maipakita ang paggamit ng multiplexer. Naidagdag lamang dahil gusto kong maghintay para sa isang input sa mode na POWER_DOWN upang makatipid ng kuryente sa halip na magpatuloy na patakbuhin ang loop ng programa na walang ginagawa hanggang sa maganap ang isang input.

Baguhin ang Code ng klase ng SoftwareSerial

Ang klase ng SoftwareSerial ay kailangang baguhin upang hindi nito baboyin ang lahat ng pagbabago ng pin na nagagambala ng mga port. Ang code ng klase ng SoftwareSerial ay matatagpuan sa

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

Makahanap ba sa PCINT0_vect sa SoftwareSerial.cpp upang hanapin ang lokasyon ng pagsisimula para sa mga pagbabago sa code. Idagdag agad ang sumusunod na code bago ang umiiral na # kung tinukoy (PCINT0_vect) na pahayag.

# kung tinukoy (_ AVR_ATtiny84_)

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

Ngayon ay puna ang umiiral na bloke ng code na naglalaan ng mga port na makagambala ng port tulad ng ipinahiwatig sa ibaba (idagdag lamang ang pagsisimula at pagtatapos ng mga simbolo ng komento ng block / * at * /):

/*

#kung tinukoy (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt (); } #endif #if tinukoy (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect)); } #endif #if tinukoy (PCINT2_vect) ISR (PCINT2_vect, ISR_ALIASOF (PCINT0_vect)); #endif #if tinukoy (PCINT3_vect) ISR (PCINT3_vect, ISR_ALIASOF (PCINT0_vect)); #tapusin kung */

I-configure ang Hardware

Ang SPST switch ay naka-attach sa ATtiny84 pin 6 (MOSI) tulad ng nakabalangkas sa Hakbang 2. Ang pamamaraan ay dinoble dito para sa kaginhawaan.

  • ikonekta ang switch input 3A sa Tiny AVR Programmer header MOSI lead
  • ikonekta ang 3B sa SPST switch ON output pin
  • ikonekta ang 3Y sa ATtiny84 pin 6

    • MGA RESULTA:

      • Ang 3A, MOSI, ay isusukat sa ATtiny84 pin 6 habang nagda-download
      • Ang 3B, output ng SPST, ay buburahin upang i-pin 6 pagkatapos i-download

Patakbuhin ang programa

Bago tumakbo, ilagay ang switch ng SPST sa off posisyon. Kung hindi man ang LED ay bubuksan kapag ang switch ay naka-off at vice versa. Sundin ang pamamaraan para sa hakbang 3 upang mai-load, mag-compile, at i-download ang application input program gamit ang Arduino IDE. Tulad ng dati, ang LED ay hindi dapat magpitik habang nagda-download kaya ang pahiwatig lamang na ang programa ay nakabukas at tumatakbo ang magiging serial message sa pagtatapos ng gawain sa pag-setup: Kumpleto ang SETUP - Halimbawa ng Input

Sa puntong ito ang programa ay naghihintay para sa isang input mula sa SPST switch. Ang paglalagay ng switch sa posisyon na ON ay magiging sanhi ng pag-on ng LED; ang pagbabago pabalik sa posisyon na off ay pinapatay ang LED. Ang mga mensahe ng output ay nagpapatunay na ang ISR ay tinawag (ISR: Led HIGH, ISR: Led LOW). Pansinin ang pagkakasunud-sunod ng mga serial message ay PUMUNTA muna sa pagtulog sa isang pagbabago ng estado ng switch; kapag kumuha ng isang input ng switch ang ISR ay inanyayahan, i-toggle ang LED, at idokumento ang pagbabago; pagkatapos ang pagproseso ay kukuha ng pagsunod sa tawag sa pagtulog dahil ang nakakagambala ay nagising ang processor.

Larawan
Larawan

PROGRAM PARA SA INSTRUCTABLE NA ITO:

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

// BAHAGI 2: Pagbabahagi ng pin ng application / pag-download ng aparato //. Binabago ang code na Bahagi 1 upang suportahan ang muling paggamit ng application ng mga pin // na nakatalaga sa interface ng SPI program //. Ang "Comon" na code para sa ATtiny85 at ATtiny84 // **************************************** ***** ang code sa pagproseso ay karaniwan, ang mga ginamit na pin ay tukoy sa aparato # kung tinukoy (_ AVR_ATtiny84_) || tinukoy (_ AVR_ATtiny84A_) #define ledPin 4 // Toggled upang i-on ang nakakonekta Na-on / off ang #define rxPin 9 // Ginamit para sa Serial na makatanggap ng #define txPin 10 // Pin na ginamit para sa Serial transmit #define SpstPin 6 // Input mula sa SPST switch (MOSI) #define ISR_VECT PCINT0_vect // SPST switch Pin baguhin ang gumagambala na vector #elif na tinukoy (_ AVR_ATtiny85_) #define ledPin 1 #define rxPin 4 #define txPin 3 #define SpstPin 2 // Input from SPST switch (INT0)_ct // SPST switch Pin baguhin ang nakakagambala vector #else #error Tanging ang ATiny84 at ATtiny85 ang sinusuportahan ng Proyekto na ito #endif // Lumikha ng halimbawa ng klase ng Serial ng Software na tumutukoy kung aling aparato // mga pin ang gagamitin para matanggap at maipadala ang SoftwareSerial mySerial (rxPin, txPin); // ----------------- ----------------- // Pinasimulan ang mga mapagkukunan sa pagproseso // ---------------- ---- --- void setup () {mySerial.begin (9600); // Start serial processing delay (2000); // Bigyan ng oras ang Serial Com port upang makumpleto ang pagsisimula. // kung hindi man, ang 1st output ay malamang na nawawala o garbled pinMode (ledPin, OUTPUT); // Configure led pin for OUTPUT pinMode (SpstPin, INPUT); // Configure SPST switch pin bilang isang INPUT # kung tinukoy (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // i-set up ang pagbabago ng pin na makagambala upang hawakan ang switch input sa pin 6 (MOSI) GIMSK | = (1 <

Hakbang 5: ATtiny85 Case 1 - Ihiwalay ang Output ng Application

Larawan
Larawan

Sa halip na bumuo ng isang dobleng pag-setup ng hardware para sa ATtiny85, marahil mas madaling magsimula sa natapos na pagsasaayos para sa ATtiny84 mula sa Hakbang 4 at palitan ang tiny84 chip ng tiny85. Ang lahat ng kinakailangang hardware ay magagamit na. Kung ginagamit ang diskarte na ito, hanapin ang tiny85 upang ang mga pin ay 3 at 4 na nakahanay sa serial cable tx at makatanggap ng mga wire. Pagkatapos ay isang bagay lamang sa paglipat ng mga interface ng interface ng SPI interface upang tumugma sa kanilang mga kinakailangang lokasyon para sa ATtiny85.

Kung nagsisimula mula sa simula, sundin lamang ang mga pangkalahatang hakbang mula sa Hakbang 3 at ang fritzing diagram sa itaas. Ang code ay pareho ng ginagamit para sa ATtiny84 sa Hakbang 3 na may parehong mga inaasahang resulta - walang kurap sa panahon ng pag-download; kapag tumatakbo ang LED blinks sa 2 segundo na agwat at mga serial na mensahe ng output sundin ang estado ng LED.

Larawan
Larawan

Hakbang 6: ATtiny85 Case 2 - Ihiwalay ang Input ng Application

Larawan
Larawan

Para sa pag-setup ng hardware, magsimula sa pagsasaayos mula sa Hakbang 5 at idagdag ang switch ng SPST tulad ng ipinahiwatig sa fritzing diagram sa itaas. Gumamit talaga ako ng panandaliang paglipat para sa tiny85 na bersyon at ginagawang mas madali ang pag-verify. Pansinin na ang output ng switch ay pinaikot ng 180 degree mula sa pagsasaayos ng ATtiny84. Ginagawang mas madali ng pagbabagong ito ang ruta ng mga wire ng hookup dahil ang lahat ng 3 signal ng SPI ay nasa parehong panig para sa ATtiny85.

Gumamit ng parehong programa tulad ng para sa ATtiny84 Hakbang 4. Ang parehong pangkalahatang mga resulta ay inaasahan - estado ng mga pagbabago ng LED kapag ang SPST switch ay naka-on / off at mga serial na mensahe ng mensahe ang mga pagbabago. Ang mga mensahe na PUMUNTA SA TULOG ay nawawala dahil ang pag-andar sa pagtulog ay hindi tinawag para sa ATtiny85. Kahit na ang parehong programa ay ginamit, may mga makabuluhang pagkakaiba sa pagpapatupad upang mai-account ang katotohanan na ang ATtiny85 ay may lamang isang rehistro sa port (Port 0):

  1. Inilalaan ngayon ng SoftwareSerial ang port 0 pin na pagbabago na makagambala para sa serial na komunikasyon (Alalahanin na nagamit namin ang port 1 para sa ATtiny84.)
  2. Ang SPST switch interrupt ay dapat na ipatupad sa panlabas na makagambala 0 (INT0) dahil ang isa at tanging pag-iiba ng pagbabago ng pin ay inilalaan ng SoftwareSerial. Inilalarawan nito ang punto na ang mga pagbabago ng pin ay nakakagambala at mga panlabas na pagkagambala ay lohikal na independyente at maaaring magamit sa loob ng parehong rehistro ng port.
  3. Walang nakukuha sa pamamagitan ng paggamit ng nabagong bersyon ng SoftwareSerial - mayroon lamang isang port at kukunin ito ng klase ng SoftwareSerial. Gayunpaman, ang nabagong klase ay ginamit pa rin upang maiwasan ang isang pagbabago na hindi direktang nauugnay sa layunin ng hakbang na ito.

Inirerekumendang: