1 / 13

Mikroprotsessorid: Praktikum 1

Mikroprotsessorid: Praktikum 1. Artur Abels. Ülesandeid. Teha lõpmatu tsükkel :). Ülesandeid aritmeetiliste tehete peale.

mead
Download Presentation

Mikroprotsessorid: Praktikum 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikroprotsessorid: Praktikum 1 Artur Abels

  2. Ülesandeid • Teha lõpmatu tsükkel :)

  3. Ülesandeid aritmeetiliste tehete peale • Laadida 2 arvu registritesse ja teha nendega mingi aritmeetiline tehe. Peale seda minna lõpmatu tsükli sisse. Võite kasutada erinevaid registre, mitte ainult r16 ja r17 . Selleks et saada teada mis registritega saab töötada mingi assembleri käsk vaadake selle käsu kirjeldust AVRStudio helbist. • Proovige teha erinevad aritmeetilised tehed (ADD, SUB, MUL kui leiate veel midagi huvitavat siis katsetage seda ka)

  4. Ülesandeid aritmeetiliste tehete peale • Uurige kuidas ja mis juhul mõjutab instruktsioon ADD lipu “carry”. • Uurige mida teeb instruktsioon ADC ja kuidas see sõltub lipust “carry” • Tehke programm mis liidab kaks 16bitist arvu • Kuna mõlemad arvud on 16bitised siis igaüks nendest võtab 2 registrit. Olgu arv A, mille ülemised 8 biti (AH) on registris r17 ja alimised 8 biti – r16. (kombeks on teha nii et suurema numbriga register hoiab ülemist arvu osa) ja arv B registrite paaris r19:r18. • Alguses tuleks liita alumised arvude osad omavahel kasutades instruktsiooni ADD. Juhul kui tulemus oli suurem kui 0xFF siis statuse registri “carry” lipp (ülekanne) sätitakse 1ks. • See bit oleks nagu 9s bitt mida tuleks liita ülemiste arvude osade summale. Just seda teeb instruktsioon ADC. Selle instruktsiooni abil tuleks liita ülemised arvude osad. • Mis registrites on teil tulemus ? • Kontrollige et liitmine käib õigesti erinevate arvudega.

  5. Ülesandeid aritmeetiliste tehete peale • Tehke tsükkel kus 16bitist arvu suurendatakse 0st 0xFFFFni, ja ülemine osa väljastatakse PORT B peale. • Veenduge et pole enam nii suurt viivist vaja et vilkumine oleks nähtav. Seletage miks see nii on.

  6. Ülesandeid bititehete kohta • Põhjenda et ükskõik mis arvul saab kindlad bitid püsti panna teisi muutmata, kui teha selle arvu bitikaupa “OR” õige maskiga. • Mis bitte paneb püsti mask 0x01? 0x02? 0x6D? • Mis maski on vaja selleks et panna püsti bitid 0, 1 ja 5 teisi bite muutmata.

  7. Ülesandeid bititehete kohta • Põhjenda et ükskõik mis arvul saab kindlad bitid maha võtta teisi muutmata, kui teha selle arvu bitikaupa “AND” õige maskiga. • Mis bitte paneb püsti mask 0xFE? 0x02? 0x6D? • Mis maski on vaja selleks et võta maha bitid 0, 1 ja 5 teisi bite muutmata.

  8. Ülesandeid bittetehete kohta • Põhjenda et ükskõik mis arvul saab kindlad bitid muuta(flip) teisi muutmata, kui teha selle arvu bitikaupa “EXCLUSIVE OR” õige maskiga. • Mis bitte muudab mask 0x01? 0x02? 0x6D? • Mis maski on vaja selleks et panna muuta bitid 0, 1 ja 5 teisi bite muutmata.

  9. Nuppude ühendus: jalg sisendiks • Kui mingi mikrokontrolleri jalg on konfitud sisendiks, siis see ei mõjuta välismaailma, nagu oleks mikrokontrolleri sees ühendamata, nagu lihtsalt metalli tükk oleks raja küljes. • Vahe on selles et mikrokontroller ikka oskab mõõta pinget selle jala peal. Kui pinge on lähedane toitepingega siis selle jala seisundit loetakse 1ks. Kui pinge selle jala peal on lähedane nullile siis selle jala seisundit loetakse 0ks.

  10. Nuppude ühendus

  11. Nuppude ühendus • AVR mikrokontrollerite see on olemas sisemised PULLUP takistid, mis ühendavad jalga toitepingega kui vastavalt konfida vastav port. • See lubab ühendada nuppe ilma välimisi takisteid kasutamata.

  12. Ülesandeid nupu kasutusele • Uurida AVRButterfly andmelehest kuidas on mikrokontrolleriga ühendatud joystick. Mis pine on vaja on programmis vaja lugeda et saada teada joysticku nupude vajutamisest. • Teha programm mis konfigureerib vajalikud pordid nupude lugemiseks, tsüklis loeb nupu seisu ja väljastab selle PORTB seitsmenda jala peale. • Teha sama, aga väljastada inverteeritud nupu seis.

  13. Ülesanded nupu kasutusele • Teha programm mis vilgub valgusdioodiga kui mingi nupp on all, ja ei vilgu vastasel juhul • Teha programm mis vilgub mingi kiirusega x kui ükski nupp ei ole all, vilgub kiirusega 2x kui all on joysticku nupp “A”, 4x kui “B” jne.

More Related