Vs: Kiirusemõõtja PIC-ga
Tegelikult pole võimalik. Vea põhjuseks oli käsk movfw konstandi
(direktiiviga equ nimega konstandiks muudetud) lugemisel. Huvitav, mis
siis tegelikult W-registrisse sattus? Veateadet igatahes ei tekkinud.
Iga sisendimpulsiga tekkis lihtsalt erinev näit, kuigi kiiruse arvutamise sisendmuutujale sai antud konstantne väärtus.
Ka selle vea leidsin üles. BCD-ks muundamise alamprogrammi lõpus oli numbrite kustutamise jaoks portA kirjutamine. Nüüd ei sõltu ka vilkumise
sagedus (täpsuse huvides vilgub nüüd iga tsükli läbimise ajal) enam sisendimpulssidest.
Praeguseks jäänud vaid see täpsuse probleem. Preskaler on 1/16, seega
saab astmelisuse tekkimise piiri veel kõrgemate pöörlemissageduste suunas
lükata, kui kasutada mitmebaidilisi muutujaid. Kui ka sellest väheks jääb, võib TMR0 mingi algväärtuse kirjutada, kuigi katkestuse alamprogramm muutub mõnevõrra kohmakamaks (TMR0 kirjutamisel kustub preskaleri seadistus).
Teine variant on teatud sagedusest alates hakata impulsse kokku lugema,
kuid siis muutub multitasking-u lahendus ning põhiahela läbimise intervall
pole enam püsiv.
Valmimiseni pole enam palju jäänud.
Esmalt postitatud 6p45s poolt
(direktiiviga equ nimega konstandiks muudetud) lugemisel. Huvitav, mis
siis tegelikult W-registrisse sattus? Veateadet igatahes ei tekkinud.
Iga sisendimpulsiga tekkis lihtsalt erinev näit, kuigi kiiruse arvutamise sisendmuutujale sai antud konstantne väärtus.
Esmalt postitatud 6p45s poolt
sagedus (täpsuse huvides vilgub nüüd iga tsükli läbimise ajal) enam sisendimpulssidest.
Praeguseks jäänud vaid see täpsuse probleem. Preskaler on 1/16, seega
saab astmelisuse tekkimise piiri veel kõrgemate pöörlemissageduste suunas
lükata, kui kasutada mitmebaidilisi muutujaid. Kui ka sellest väheks jääb, võib TMR0 mingi algväärtuse kirjutada, kuigi katkestuse alamprogramm muutub mõnevõrra kohmakamaks (TMR0 kirjutamisel kustub preskaleri seadistus).
Teine variant on teatud sagedusest alates hakata impulsse kokku lugema,
kuid siis muutub multitasking-u lahendus ning põhiahela läbimise intervall
pole enam püsiv.
Valmimiseni pole enam palju jäänud.
Comment