Lühike Õpetus Programmeerimine AVR ilma Arduino Motivatsioon Lihtsalt alustada valest otsast: "mõnikord Arduino on vale valik." Sõltuvalt sellest, mida sa teed, äkki te app struktuur ei ole väga hästi sobib Arduino raamistik. Võib-olla teil on vaja kirjutada väiksema kood see, mida oleks võimalik toota Arduino, mõnikord sa lihtsalt ei suuda Arduino üldse ... Ma olen selle viimase kategooria. Ma ei ole nii suur fänn Java, ja ma olen rahul, tekstiredaktor ja sõidu koostaja käsitsi, nii et ma teen selle raske tee. Arduino trowels mõne kena krohv üle top, kuid see on mi mida sa ei saa seda teha käsitsi. Tõesti, kõik, mida peaks vaja on avr-gcc, avr-libc, avr-binutils ja AVRDude. Kuidas need paketid on väljapoole käesoleva dokumendi, siis on üsna tõenäoline, on pre-ehi paketid oma OS. See dokument on kirjutatud anda algteadmised mõned spetsiifikat AVR programmeerimine, eeldades, et juba on käepide, C. See lähendab et ma tulin, et mõista asju õppides programm
Skeemitehnika I kordamisküsimused 1. Numbrite esitamine ja teisendamine kahend-, kümnend- ja kuueteistkümnendsüsteemis. Kümnendsüsteemist 16. süsteemi käib sama moodi nagu 10.süsteemist binaari, ainult et jagad kahe asemel 16ga ja jäägis (milleks tulevad arvud 0-15) asendad 10-15 ->A-F. NT 1000 (10.süsteemis) = 3E8 (16.süsteemis). 2. Loogikafunktsioonid ja neid realiseerivad loogikaelemendid (funktsioonide nimetused, olekutabelid, skeemi tingmärgid). AND (ja) A B Q 0 0 0 0 1 0 1 0 0 1 1 1 OR (või) A B Q 0 0 0 0 1 1 1 0 1 1 1 1 NOT(ei) xor 00-0 10-1 01-1 11-0 A Q 0 1 NOR(või-ei) 1 0 A B Q 0 0 1 0 1 0 1 0 0 1 1 0
Iga etapi tätmisel rakendatud vaid 25% täielikust potentsiaalist. Käskude täitmise efektiivsust aitab tõsta RISC (Reduced Instruction Set Computing) ideoloogia. Konveier võimaldab käskude paralleelset täitmist. NT kui esimene käsk on läbinud esimese etapi ja jõudnud teise, siis saab alustada teise käsu esimese etapi täitmist jne. Konveier ei suurenda käskude täitmise kiirust, kuid tänu paralleelsusele täidetakse neid keskmiselt ajaühikus rohkem. Protsessor on nii ka pidevalt koormatud. Probleemiks on aga siirdekäsud (Branch bubbles) ja andmesõltuvus (Data dependency). Nendega tekkivad nö ,,mullid" lahendab andmete otsene edastus. 3. SUVAPÖÖRDUSMÄLUD Ehk muutmälud on toitepingest sõltuvad. Iga sõna poole pöördumine nõuab ühepalju aega asukohast sõltumata. Staatilised iga infobiti salvestamiseks kasutatakse ühe trigerit, mis säilitab infot kuni säilib toitepinge.
Selleks on tavaliselt asünkroonsed asetussisendid, mis viib trigeri algolekusse (S- ja R- või ainult R-sisend, olenevalt ehitusest võib olla nii 0 kui 1). Võimalik on ka madalaktiivne asetussisend. 2. Konveier protsessoris ja mälus. Protsessoris: käsu täitmise võib jagada teatud sõltumatuteks etappideks. Kui kõik etapid on sõltumatud ja ligilähedaselt sama kestusega, saab protsessor täita ühe taktiga esimese käsu esimese etapi ning teise takti ajal täita juba teise käsu esimest etappi jne. Kiirus ei suurene, suureneb ainult takti ajal täidetud käskude arv, mis tähendab, et protsessor on pidevalt koormatud. Konveier töötab tõhusalt ainult siis, kui seda pole vaja pidevalt taaskäivitada. Taaskäivitamist võivad põhjustada siirdekäsud, operandide laadimine mälust või andmete ja käskude sõltuvus.
kallis. Kuna ALUl mälu puudub, kasutatakse lippude registrit eelneva tulemuse salvestamiseks. Käsuloendur on vajalik, et teada, millise käsu täitmise juures parasjagu ollakse. Käsuloendur säilitab järgmisena täitmisele tuleva käsu aadressi. Vajalik näiteks katkestuse korral ja alamprogrammi poole pöördumisel, et fikseerida tagasipöörde aadress järgmise käsu juurde. Käsuregister- kui protsessor väljastab käsuloendurist aadressi ja loeb selle järgi mälust käsukoodi, siis salvestatakse see käsuregistrisse. Käsuregistri väljundisse on ühendatud dekooder, mille väljundis on iga sisendkoodi korral aktiivne vaid üks väljund. Käsudekoodril läheb aktiivseks üks väljunditest, mis näitab, millise käsu kood loeti protsessorisse. Kõik käsud sisaldavad käsukoodi, kuid käsus võib olla ka aadress või andmed.
ning protsessori vahel mingit erilist suhtlust (I/O seadmed ei nõua ise tähelepanu) ning prioriteetide probleem on lahendatud korrapäraselt multiplexori abil. *Katkestusega süsteemid- Katkestusega süsteemi puhul on kõik arvuti riistvaralised komponendid on ühendatud protsessoriga läbi spetsiaalse siini IRQ(Interrupt Request), tänu millele neil on vajadusel võimalik nõuda protsessori tähelepanu. Katkestuse toimumisel: (a)Lõpetab protsessor parasjagu poolelioleva operatsiooni.(ALATI lõpetatakse pooleliolev operatsioon ning alles siis tegeletakse katkestusega).(b)Käsuloenduri(PC) ning lipude registri väärtused lükatakse pinu otsa. (c)CPU lahendab katkestuse tekkepõhjuse, kasutades rakendust nimega interrupt handler'it. (d)Pinu otsa salvestatud väärtused taastatakse ning protsessori töö jätkub. *Prioriteetide lahendamine ning reguleerimine katkestusega süsteemis:
kestvusega. Nüüd saame peale seda kui esimene käsk on läbinud esimese etapi ja jõudnud teise, alustada juba teise käsu juures esimese etapi täitmist. Kuivõrd etapid on sõltumatud saame siis, kui esimene käsk on kolmandas etapis ja teine käsk teises alustada juba kolmanda käsu juures esimese etapi täitmist jne. Seega ei ole siin suurenenud ühe käsu täitmise kiirus kuid tänu käskude täitmise paralleelsusele täidetakse neid keskmiselt ajaühikus rohkem. Samuti on siin kogu protsessor pidevalt koormatud. Analoogiline on konveieri töö tootmises. Konveieriga programmi täitmine (Pipeline): 3. Suvapöördusmälud Random access memory suvapöördusmälu( iga sõna poole pöördumine nõuab ühepalju aega sõltumatta tema sukohast mälus) Muutmälude (RAM - random access memory) põhiliigiks on pooljuhtmälud, mis koosnevad trigeritest või muudest mäluelementidest
Nüüd saame peale seda kui esimene käsk on läbinud esimese etapi ja jõudnud teise, alustada juba teise käsu juures esimese etapi täitmist. Kuivõrd etapid on sõltumatud saame siis, kui esimene käsk on kolmandas etapis ja teine käsk teises alustada juba kolmanda käsu juures esimese etapi täitmist jne. Seega ei ole siin suurenenud ühe käsu täitmise kiirus kuid tänu käskude täitmise paralleelsusele täidetakse neid keskmiselt ajaühikus rohkem. Samuti on siin kogu protsessor pidevalt koormatud. Analoogiline on konveieri töö tootmises. Konveieriga programmi täitmine (Pipeline): 12.Süvapöördusmälud. Random access memory –suvapöördusmälu( iga sõna poole pöördumine nõuab ühepalju aega sõltumatta tema sukohast mälus) Muutmälude (RAM - random access memory) põhiliigiks on pooljuhtmälud, mis koosnevad trigeritest või muudest mäluelementidest. Muutmälud on toitepingest sõltuvad ning jagunevad kahte liiki, staatilisteks ja dünaamilisteks.
Kõik kommentaarid