Mis on
mikrokontroller?
Mikrokontroller on ühte
mikrokiipi mahutatud miniarvuti, mille abil saab sooritada
loogikatehteid, arvutusi, juhtida seadmeid, töödelda andmeid.
Mikrokontroller koosneb
järgnevatest osadest:
- ALU (
Aritmetic Logic
Unit ) -
aritmeetika loogikaplokk
- Käsudekooder
- Aadressimälu
- Programmimälu
- Andmemälu (RAM)
-
EEPROM mälu
Mis on register ? Milleks kasutatakse Microchip PIC
mikrokontrollerite registreid PORTx ja TRISx ?Register on andmebaas
.Mikrokontrolleri
sisendeid ja väljundeid saab
seadistada TRIS ja PORT
registritega.TRIS registri iga
bitt on seotud vastava järjekorra
numbriga viiguga. Samamoodi on võimalik viikusid ka sisenditeks
defineerida, kirjutades TRIS registrisse vastavate bittide väärtuseks
1. Sisendiolekut näitavad vastava PORT registri bitid.
Mis on põhiprogramm ja milleks kasutatakse almprogramme?Põhiprogramm
koosneb hulgast funktsioonidest, mis üksteist vajaduse korral
väljakutsuvad. Iga programm omab aga üht funktsiooni, mis
aktiveeritakse ainult programmi algul ja mida teised funktsioonid
välja ei kutsu, ja nimelt:
int
main(int argc, char
argv []), see on põhiprogrammi algus.
Tüüpiliselt on vaja kasutada
alamprogramme siis, kui
samasisuline tegevus (ehk
samasugune käskude
jada) esineb
programmis kahes või enamas kohas. Sellega me taotleme,
et programm tuleks võimalikult lühikene. Kuid see ei ole ainus
põhjus. Tihti on otstarbekas jagada programm loogilisteks üksusteks
parema loetavuse huvides. Kui kogu programmi
pikkuseks on tuhat rida
ja see kõik paikneb põhiprogrammis, siis selle programmi tekst on
äärmiselt raskesti
loetav . Selline loogilisteks üksusteks
eraldamine käib harilikult käsikäes ülesande lahendamiseks
vajalike algoritmide valimise ja kombineerimisega.
Oletame, et ülesande lahendamine
eeldab andmete sisestamist, töötlemist ja vastuse väljastamist.
Seetõttu võiks programmi ülesehitus olla järgmine:
Programm (Põhiprogramm)
Andmetesisestus (see on alamprogramm)
Andmetöötlus (see on alamprogramm)
Väljastamine (see on alamprogramm)
Lõpp (Põhiprogramm)
Mis on programmitsükkel?Korduvate
operatsioonide puhul kasutatakse programmeerimises tsükleid. Tsükleid
on kaht tüüpi:
- While - tsükkel e. tsükkel, mis kordab valitud käske seni, kuni määratud tingimus (tsüklitingimus) on tõene (ka eelkontrolliga tsükkel).
- For-tsükkel e. tsükkel, mis kordab valitud käske kindel arv kordi (ka määratud tsükkel).
Kuidas
laetakse programm püsimällu?Programm
laetakse püsimällu (mikrokontrolleri sisemällu) programmatori
abil. Antud juhul selleks on Pbrenner. See on eraldiseisev software
mis aitab valida
kiipi ning võimaldab lülitada mikrokontrolleri
lugemisest kirjutamisele.
Kuidas saab AD-muundur etalonpinge?Etalonpinge allikas Vref, digitaaljuhitavad lülitid, takistitest
moodustatud maatriksskeem
(pingejagurid) ja operatsioonvõimendi. Iga maatriksskeemi takisti on
ühendatud
digijuhitava lülitiga, mis ühendab takisti ühe klemmi
etalonpingega Vref.
Kuidas on ühendatud AD-muundurmõõtesisend?AD-
muunduri mõõtesisend on ühendatud jadamisi.
Mitme bitiline on mõõtetulemus?Mõõtetulemus on 10-bitiline.
Millistesse (mitme bitilistesse) registritesse laetakse
mõõtetulemus ja kuidas?Mõõtetulemused kantakse 2- ja 8- bitilstesse registritesse
Kuidas mõõtetulemust programmis kasutatakse?Mõõtetulemus kuvatakse programmis 8- ja 2-bitilisena. Kõige pealt
8-bitiline arv , mille
moodustavad
hilisemad mõõdud ning 2-bitiline ,
mills moodustavad 2
varasemat mõõtu.
Kuidas sõltub loendustrigeri (T- trigeri ) väljundsignaali sagedus sisendsignaali sagedusest?Iga sisendimpulss x lülitab oma tagafrondiga ahela esimese trigeri
ringi. Iga kahe
sisendimpulsi järel lülitub trigeri väljund korraks sisse ja
välja. See tähendab, et tema
väljundimpulsside muutumise sagedus on kaks korda väiksem kui
sisendimpulssidel.
Võib öelda, et loendussisendiga
triger jagab impulsside sageduse
kahega. Ahela teise
trigeri
väljundis on sagedus 4 korda, kolmanda trigeri väljundis 8
korda,
neljanda trigeri väljundis 16 korda jne väiksem. Jadaülekandega loenduri
puuduseks on
signaali ülekandel tekkiv hilistumine, mis suureneb koos loenduri
astmete arvuga.
Suure loendusastmete arvu ning taktiimpulsside sageduse korral võib
hilistumine
ületada takti kestuse. Sel juhul ei vasta loenduri väljundsignaal
enam tegelikult
loendatud impulsside arvule ning süsteemis tekib viga. Vea
vältimiseks tuleb
vähendada taktiimpulsside sagedust, mis omakorda alandab kogu seadme
töökiirust
2. Kuidas
töötab taktgeneraator?Taktgeneraator on seade, mis väljastab perioodilisi ajastusimpulsse.
Perioodilise impulsi
tekitab allikas, näiteks mikrokvartsresonaator. Resonaatori
omavõnkesagedus võib olla
näiteks 65 536 Hz = 216 Hz. Seda sagedust
poolitatakse 16
järjestikuse trigeriga
sageduseni 1 Hz, mis osutitega kellas käivitab spetsiaalse
samm-mootori. Resonaatori
võnkesageduse lubatud hälve võib olla näiteks ±20 ppm
(miljondikosa)
resonantsisagedusest temperatuuril 25
°C ja sageduse muutus esimese aasta jooksul kuni ±5 ppm, edaspidi
sagedus
stabiliseerub.
3. Milleks on vajalikud sagedusjagurid?Taimeri sisendtakti saab muuta sagedusjaguri seadistusega. Taimeri
ületäitumine
kajastub signaaliga registris INTCON (selle registri
signaalid on
kasutatavad ka
katkestussignaalidena). Registri INTCON kontrollimisega programmi
abil ehk registri seisundi pollimisega (kontrollida on võimalik ka
riistvaralislt st.
katkestusega).
4.5.6. Kuidas saab muuta taimeri loenduri sisendsagedust? Mille
poolest erineb taimer loendurist?Taimeri sisendsagedust saab muuta sagedusjaguri seadistusega. Lisad
mis teevad loendurist taimeri : Sisendsignaal taktgeneraatorist,
algväärtuse (või lõppväärtuse)
omistamine ,loendamise suuna
ümberlülitamine.
Mis ajavahemik vastab 63-le taimeri ületäitumisele
mikrokontrolleri taktsignaali sagedusel 20 MHz teie kasutatud seadmes ja igas tehtud programmis?Kuna ühe ületäitumise aeg on 0.006528s, siis 63-le täitumisele
kulutatakse
0.006528*63=0.4114s
Kuidas ja milliste sammudega saab taimerit seadistada kiiremaks?Esimeseks, saaks kasutada maksimaalse taimeri sageduse (ehk mitte
jagada 4-
ga või 16-ga). Veel saaks kasutada väiksema Prescaleri ( 16 või
32, 128 asemel).
Aga ei ole
vist mõtet teha taimerit ligia kiiremaks, kuna meie ei
saa seda lambi
sisse/välja-lülitamist jälgida kui ajavahemik on väga lühike.
Kõik kommentaarid