PIC16F84 sekundi mõõtmine
#1
Kuna ma ei ole selle PICi teemaga väga sõber siis ehk oskab mõni aidata. Tahan teha seadet, mis mõõdab 1 sekundi pikkust viidet. Plaan on järgmine. Vajutad mingit nuppu, läheb taimer käima. Lased nupu lahti jääb taimer seisma. Peale seda saad teada ainult seda kas vajutasid liiga lühikest aega, liiga pikka aega või täpselt õige aja. Kas sedasi realiseerida on üldse hea mõte ? Võibolla saab kuidagi muudmoodi ? Kui see on mõistlik mõte siis kuidas ma seda sekundit seal loen ? Et teeks mingid 1ms pikkused tsüklid. Ja peale iga tsükli lõppemist ja enne uue alustamist pannaks kuskile linnukese. Ja peale nupu lahtilaskmist loetakse linnukesed kokku ning võrreldakse mingi tulemusega. Teoorias võiks nagu hea olla. Õnneks ei ole ma veel selgeks mõelnud kuidas neid linnukesi lugeda, sest neid peaks saama ikka tuhandetes lugeda aga see PIC oskab ainult 255'ni lugeda. Muidugi saaks sealt edasi minna järgmise mälupesaga aga siis peab hakkama taimerit ringi tegema, sest eelmise mälu täissaamise ja järgmisse kirjutamisega läheb osa takte ja seega ka osa aega selle peale, et taimer ei tööta. Või on see kõik väga paha mõte ?
Vasta
#2
Kodutöö täielikult tegemata.
http://www.pcbheaven.com/picpages/A_Clever_Button/

Ja ei jäta mitte soovitamata Arduinoga sama katset (ja ka teisi katseid) teha.
Arduino "pseudokeel" lubab rohkem kui 255ni lugeda, ilma võimlemata Smile
Vasta
#3
(21-07-2013, 01:09 AM)W@ldur Kirjutas: Kodutöö täielikult tegemata.
http://www.pcbheaven.com/picpages/A_Clever_Button/

Ja ei jäta mitte soovitamata Arduinoga sama katset (ja ka teisi katseid) teha.
Arduino "pseudokeel" lubab rohkem kui 255ni lugeda, ilma võimlemata Smile

Kaevan seda viidet. Mul on see raud olemas. Lisaks läheb see asi kõik kuskile ilmastiku kätte. Ja seal võib ta lihtsalt niiskuse tõttu surma saada. Siis on hea odav asendada. Eelmise nublaka suutsin realiseerida kolme kivi, ühe kvartsi ja ühe 5x7 indikaatoriga. Üsna pisike asi tuli kokku. Hind oli kõikide tükkide peale vist 6 erubla. Lisaks ei tea ma Arduinost hetkel peale nime mitte midagi. Võimalik, et kunagi hakkan seda kah torkima.
Vasta
#4
See on lihtne probleem. Lahendusi ka mitu. Nt võib panna taimeri katkestust tekitama iga 1ms tagant (või tihedamini). Igas katkestuses suurendad oma vajutuse loenduri sisu kui vajutus kestab või ei suurenda kui enam ei vajutata; siis nt kuvad tulemuse.
Tegin praksi sarnase asja - mõõtis reaktsiooniaega, kuvas 7-segmendi indikaatoritel. Kas selle kood oleks sulle liiga keerukas modifitseerimiseks ?
Vasta
#5
(22-07-2013, 08:06 AM)felch Kirjutas: Tegin praksi sarnase asja - mõõtis reaktsiooniaega, kuvas 7-segmendi indikaatoritel. Kas selle kood oleks sulle liiga keerukas modifitseerimiseks ?
Koodi kohta ei oska öelda kuni pole näinud. Ma mingi asja pusisin assembleris valmis, sest C kompilaatorit ei leidnud. Mul on plaan väljundiks kasutada 5x7 maatriksit mis siis ütleb kolme asja: VÄHE, PALJU ja õige tulemuse korral mingid numbrid. Selle väljundi osa võtan eelmisest projektist.
Vasta
#6
(22-07-2013, 09:31 AM)dumbuser Kirjutas: ütleb kolme asja: VÄHE, PALJU ja õige tulemuse
Mis on õige tulemus?
Ei ole võimalik fikseerida TÄPSELT ei ühte sekundit ega ühte tundi.
Seal peaks olema mingi vahemik TÄPSE jaoks.

Kahe monovibraatoriga saab hakkama. Natuke loogikat kah. 3 LEDi.
Või siis võib programmis teha kaks tsüklit ja kontrollida kas seal sees tuli vajutus. Vajutus 1.s on VÄHE, 2.s on "õige" ja järgnevas lõputus tsüklis PALJU.
Vasta
#7
(22-07-2013, 03:08 PM)A.R. Kirjutas:
(22-07-2013, 09:31 AM)dumbuser Kirjutas: ütleb kolme asja: VÄHE, PALJU ja õige tulemuse
Mis on õige tulemus?
Ei ole võimalik fikseerida TÄPSELT ei ühte sekundit ega ühte tundi.
Seal peaks olema mingi vahemik TÄPSE jaoks.

Ei olegi. Alla millisekundi kisub nagunii õnnemänguks, lisaks ei tea keegi krt mismoodi see lülitilt tulev impulss üleüldse välja näeb. Vbl oleks isegi 10 ms piisav täpsus. Ma ise arvan hetkel, et see "sekund" võiks olla reaalselt näiteks 960 kuni 1040 ms vahele jääv olukord. Ma pole veel leitud ja siintoodud viidetega kahjuks põhjalikult tutvunud aga ka nemad on sellesama lüliti poolt tekitatud pulssidega midagi teinud. Vast saan sealt teada milline ajavahemik on mõistlik.
Vasta
#8
Lüliti väljundläbu sind tegelikult selle hetke fikseerimisel ei heiduta.
Kohe, kui lülitist "1" tuleb, tehakse otsus, kas see on vähe, hea, või palju, ja siis mingi aeg nii kui nii kuvatakse näitu ning samal ajal lülitit ei kuulata. Ja sellel ajal teeb ta oma trikid ära ja kui uuesti kuulamiseks läheb, on lüliti lahti lastud ja kena "0" vaatab vastu.
Vasta
#9
Kui tegu on C-s kirjutajaga siis võiks selle asja
ka PC peal testimiseks kirjutada. Kolm for-i.

Klaviatuurilt toksid mingit nuppu ja ekraanile teatad hea ja paha.
Üks eri nupp on siis uuesti alustuseks ja teine lõpetuseks.
Vasta
#10
Sain valmis selle vidina sellisena nagu ma tahtsin. Tolle viidatud asja puhul ei saanudki lõpuni aru kuida ta töötab. Seega pidin ise urgitsema. Hetkel jookseb mingi kiri. Katkestuse peale loetakse ära mitu millisekundit nupp all on. Kui nupu allhoidmine on liiga pikk (taimer saab nö täis)siis antakse vale vastus. Kui nupp lahti lastakse enne taimeri nö täissaamist siis minnakse vastust kontrollima ja vastavalt sellele tegutsetakse edasi.
Vasta


Alamfoorumi hüpe:


Kasutaja, kes vaatavad seda teemat: 4 külali(st)ne