Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Trebam malu pomoć

[es] :: Elektronika :: Mikrokontroleri :: Trebam malu pomoć

[ Pregleda: 2527 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.142.*



+19 Profil

icon Trebam malu pomoć13.02.2008. u 14:04 - pre 197 meseci
koristim mikrokontroler pic 16f876.
12 tipkala koja su spojena na ulaz mikrokontrolera.svako tipkalo na jedan ulaz.
j učitam tipkalo i nema problema.

ono što meni treba, je da može biti unijeta vrijednost jedne tipke, dvije ili tri.
iza svakog ide pottvrda sa predviđenom tipkom.

to znači: mogu pritisnuti 1 tipku i potvrditi, pritisnuti prvu, drugi i potvrditi itd..
s time da moram znati koliko je bilo tipkala prije potvrde.

ako stavim vrijednosti tipkala u varijable, kako ih spremiti u neki slobodan registar?

ovo sve radim u C-u.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Trebam malu pomoć13.02.2008. u 16:30 - pre 197 meseci
Cemu potvrdjivanje pritisnutog tastera?

Pozdrav
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.142.*



+19 Profil

icon Re: Trebam malu pomoć13.02.2008. u 16:49 - pre 197 meseci
zato što ja unesem neku vrijednost do 900.
i u odnosu na unijetu vrijednost nešto se šalje na izlaze.
zato mi treba unos vrijednosti i potvrda.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Trebam malu pomoć13.02.2008. u 16:59 - pre 197 meseci
Aha, ako sam shvatio, treba ti potvrda ne posle svakog rastera, vec posle vise otkucanih tastera. To ima smisla i lici kao na Enter, ako se ne varam?
Da li su testeri iskljucivo numericki, sem tastera za potvredu. Dakle: 10 tastera kojima odgovaraju vrednosti od 0 do 9, taster enter i imas jos jedan slobodan taster.

Da li je tako?

Pozdrav.


 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.142.*



+19 Profil

icon Re: Trebam malu pomoć13.02.2008. u 17:05 - pre 197 meseci
tako je. imam 0-9, * i #.

ja moram prvo provjeriti šta je unijeto.ako su unijete 3 znamenke prije potvrde, prvu množim sa 100, drugo sa 10 i treću ostavljam i zbrajam da dobijem vrijednost.
sad sam ja mislio spremiti svaku vrijednost u u registar.
znači u 3 registra.provjerim koji su mi popunjeni i množim sa 100 ili (i 10) itd...

napravio sam sa switch() neredbom. varijablama pridružim određene vrijednosti i spremim u registre ono što je pritisnuto kad se potvrdi provjerim naparvi odgovarujuće operacije i dobijem vrijednost, samo ne znam kako u C-u spremiti varijablu u registar, ali u one slobodne.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Trebam malu pomoć13.02.2008. u 18:33 - pre 197 meseci
Mala sugestija, ako ti je prihvatljivo:

Neka svakom tasteru odgovara vrednost od 0 do 9 i neka se ona nalazi u varijabli Tast. To si uradio sa switch() . Sada odredi varijablu tipa int i neka se zove Sum. Mozes napraviti

Sum = 10*Sum+Tast;

i uz to

if(Sum > 999) Sum = Sum-1000;

Na ovaj nacin, Sum je rezultat tri zadnja pritiska na taster. Vrednost u Sum je validna cak i bez pritiska na enter (* ili #). Ali treba uvek kucati vodece nule ako izbacis enter. Na primer broj 65 moras kucato kao 065, da bi Sum bio validan. Sigurno zapazas da ako 999 zamenis sa 9999, a 1000 sa 10000, onda imas poslednje 4 otkucane cifre, i t. d.

Sum ti je dvobajtna varijabla, pa ako zelis da je smestis u jedan registar, to nece moci. Ali moci ces je smestiti u dva registra. Tada moras znati imena tih registara, onako kako su definisana u Startup-u tvog kompajlera. Ako zamislimo da su to registri Reg1 i Reg2 onda ces Sum smestiti kao:

Reg1 = Sum & 0xFF; //nizi bajt
Reg2 = Sum >> 8; //visi bajt

Neznam da li sam pogodio ono sto te mici.

Pozdrav.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.142.*



+19 Profil

icon Re: Trebam malu pomoć13.02.2008. u 18:47 - pre 197 meseci
ja sam mislio spremiti prvi broj u EEDATA registar.
drugi u EEADR,a treći u EEDATH.

na tipku potvrde provjerim registre.napravim odgovarujuću operaciju i to je to.
međutim problem je sa 0.ako bi nula bila na zadnjem mjestu.
zato sam mislio da se provjeri koliko je cifri unijeto.
i da mi se zbroj zapiše u EEADRH.

ako bi to bilo ovako ok?
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Trebam malu pomoć14.02.2008. u 12:20 - pre 197 meseci
Nije mi jasno zasto zelis da smestis tri cifre u registre koje ne koristis, a ne u varijable tip char.

Mozda bi najbolje bilo da posaljes parce programa sa switch() strukturom, tako bi potrosili manje reci.

Pozdrav.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.128.*



+19 Profil

icon Re: Trebam malu pomoć14.02.2008. u 14:12 - pre 197 meseci
ok.budem tokom vikenda stavio.
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.smin-1.sezampro.yu.



Profil

icon Re: Trebam malu pomoć14.02.2008. u 15:55 - pre 197 meseci
Nevidim razlog zasto bi koristio registre EEDATA, EEADR i EEATH koji sluze za rad sa internim eeprom-om umesto
neke od varijabli. Korak ti je dao dobar predlog ako ti je OK i nepravis razliku od kucanja 002 enter i 2 enter. Ako
ti je bitan i broj pritisnutih tastera pre enter, mozes koristiti BCD kod za oznaku pritisnutog tastera s tim da ti nula
ima oznaku hex A ili dec 10 da bi se razlikovalo od nepritisnutog tastera. Recimo hex vrednost u varijabli 0h00A9 bi
znacilo da si pritisnuo dva tastera 0 i 9 pre pritiska na enter. Kod ove varijante umesto mnozenja sa 10 pa dodavanja
vrednosti tast morao bi da shift-ujes za 4 mesta u levo varijablu pa tek onda da dodas vrednost tast.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Trebam malu pomoć14.02.2008. u 16:25 - pre 197 meseci
Sander je razumeo isto kao i ja. Da li ti to resava problem?

Ja u principu tasterima dajem ASCII kodove, a 0 znaci da nije pritisnut ni jedan taster. Za enter dajem kod 0x0D.

Mnozenje sa 10. ((x << 2)+x) << 1.

Sander je postavio pitanje da li hoces da otkucan 3-o cifreni broj bude u binarnom formatu ili u heksadecimalnom, za sta ti je predlozio i postupak.

Pozdrav.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.128.*



+19 Profil

icon Re: Trebam malu pomoć14.02.2008. u 18:23 - pre 197 meseci
pošto radim u C-u ja bi to radio sa decimalnim ili binarnim formatom.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.135.*



+19 Profil

icon Re: Trebam malu pomoć15.02.2008. u 22:05 - pre 197 meseci
sve ok.

dali je ispravno:


sa switch case se definiraju tipkala.

vrijednosti se spremaju u 3 varijable po redu.
ako je prva popunjena sprema se u drugo.
ispod se provjeri koje su popunjene i prema tome se rade operacije.
ono što mene muči, kad ću imat potprogram za slanje impulsa i on šlje 1000 impulsa i ja hoću prekinuti sa jednom tipkom, ja sam mislio staviti tu tipku ispod i ako je pritisnuta više ne šalje!

jeli to ok?

imam operacije množenja i zbrajanja
varijabla*nešto+varijabla1
kad simuliram u mplabu i kad dođe do ovog dijela ode u assembly i tamo se malo duže vrti dok obavi tu operaciju!

sad me zanima dali je s druge strane to pet dosta brzo da mi sve odradi kako treba?








[Ovu poruku je menjao MarkoBalkan dana 16.02.2008. u 10:15 GMT+1]
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: Trebam malu pomoć16.02.2008. u 12:06 - pre 197 meseci
I onako mi nije sve do kraja jasno sta radis, a uveo si novi pojam u problem: impulse.

Molim te objasni malo detaljnije ulogu tih impulsa.

Pozdrav.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.141.*



+19 Profil

icon Re: Trebam malu pomoć16.02.2008. u 14:40 - pre 197 meseci
znači imam operciju množenja i zbrajanja.njemu za to treba 200 taktova ta to izračuna.

i to je riješeno.
ono što me sad muči je pokretanje motora.ja mu pošaljem signale, a on uopće ne trza.

napravio sam tako kad ptitisnem tipku da mi zasvijetli i led dioda, da znam da je tipka pritisnuta.
na driveru l298 imam 5 V i na jednoj i na drugoj nožici.ono što me zabrinjav je otpor na konektoru za motor koji je preko 10 kOma.

 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.smin-1.sezampro.yu.



Profil

icon Re: Trebam malu pomoć16.02.2008. u 15:47 - pre 197 meseci
Mi malo po malo mozda budemo u stanju da razumemo sta ti ustvari pokusavas da uradis, zar nije bilo lakse da si u prvom postu lapo izlozio sta radis mozda bi do sada vec vrteo taj motorcic, ovako....
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.141.*



+19 Profil

icon Re: Trebam malu pomoć16.02.2008. u 15:49 - pre 197 meseci
danas se izrodila jedna čudna stvar.
napon na nožicama za motor samo 1 V, a treba mi 5 V.
stabilizator neda veliku struju.stabilizator je na 5 V!
sad ću drito staviti iz kompa.pa ćemo vidjeti.


 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
84.119.29.*



+9 Profil

icon Re: Trebam malu pomoć16.02.2008. u 16:28 - pre 197 meseci
Marko jesi li uopšte pogledao u datasheet od L298 i ukapirao kako on radi i kako je napravljen?
On unutra ima bipolarne darlington tranzistore pa koji imaju pad napona od 1,5 do 2V, već prema veličini struje.
Znači ako ti za pogon motora treba 5V napajanje mora biti za 3-4V više (Sabiraju se padovi napona na gornjoj i donjoj
grani H-mosta), znači 8-9V. Napajanje za motor ne mora da bude stabilisano, dovoljan je grez i ispravljački elektrolit.
Pogledaj PP.

pozdrav Branko
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
78.134.141.*



+19 Profil

icon Re: Trebam malu pomoć16.02.2008. u 18:57 - pre 197 meseci
hvala.nigdje nisam vidio taj podatak.
struja u motoru je 0.5 po žici.koristim samo puni korak sa jednom žicom.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Trebam malu pomoć

[ Pregleda: 2527 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.