 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Tor Dec 21, 2004 5:06 pm Naslov sporočila: Waitms 10 - 3000 ? |
|
|
Pozdrav
Z Baskom bi rad napisal pavzo, ki bi jo nastavil s Tipko T1, ta pavza naj bi bila 10-3000 mili sekund. Kako to napisati, ker v Waitms lahko vpises samo do 255.
LP,marko _________________ Če ne veš kam greš, se ne moreš zgubiti. |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3359 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Tor Dec 21, 2004 5:25 pm Naslov sporočila: Morda tako: |
|
|
Morda tako:
Koda: |
dim Čas as word 'tukaj lahko definiramo čas v milisekundah vse do 65535
dim delovni as word
delovni = Čas
do
if delovni < 256 then
waitms delovni
exit do
else
delocni = delovni - 255
waitms 255
endif
loop
Nisem testiral, sem kar 'iz prstov scuzal', kot se temu reče. Verjetno so kakšne formalne napake, toda tako nekako bi to moralo iti.
|
|
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Tor Dec 21, 2004 5:33 pm Naslov sporočila: |
|
|
Vilko, ni mi to vse jasno ali lahko malo Pokomentiras stavke!
Hvala _________________ Če ne veš kam greš, se ne moreš zgubiti. |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Tor Dec 21, 2004 8:04 pm Naslov sporočila: |
|
|
Ali je se kaksna druga varianta za zgornje vprasanje? od Vilkota je ne razumem.
LP,marko _________________ Če ne veš kam greš, se ne moreš zgubiti. |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3359 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Sre Dec 22, 2004 9:13 am Naslov sporočila: Hm, |
|
|
Razlaga:
V do - loop zanki gremo v waitms za 255 ms in pri vsakem prehodu zanke zmanjšamo spremenljivki čas za 255 milisekund. Ko tako pridemo do časa, ki je manjši od 256 ms gremo v zanki v drugi del if ukaza, kjer gremo v wait še za toliko milisekund kot je ostalo od zadnjega odštevanja in z exit ukazom zapustimo zanko. |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3359 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Sre Dec 22, 2004 9:20 am Naslov sporočila: bom napisal še malo drugače |
|
|
bom napisal še malo drugače:
Koda: |
dim čas as word ' dimenzioniramo spremeljivko veliko 2 bajta
čas = 12000 ' hočemo zakasnitev 12000 milisekund
do ' vstopimo v zakasnitveno zanko
if čas > 255 then 'če je čas večji od 255
waitms 255 'gremo v wait 255 ms
čas = čas - 255 'in potem zmanjšamo vredno spremenljivke za 255
' potem zaustimo if in se vrnemo spet v zanko z loop
else 'če pa čas ni večji od 255 mse
waitms čas ' čakamo toliko časa, kot nam je preostalo
exit do 'in zapustimo zanko, gremo v ukaze, ki os izza loop ukaza
endif
loop
|
|
|
Nazaj na vrh |
|
 |
robertos Član


Pridružen-a: Sre 11 Avg 2004 11:31 Prispevkov: 792 Aktiv.: 3.34 Kraj: Vuhred JN76OO
|
Objavljeno: Sre Dec 22, 2004 5:26 pm Naslov sporočila: Re: bom napisal še malo drugače |
|
|
[quote="vilko"]bom napisal še malo drugače:.....itd.
Vilko to je vse lepo in prav, ampak mu še vedno nisi odgovoril na konkretno zastavljeno vprašanje.
Kako s tipko nastavljati čas od 10-3000ms ?
Verjetno je vprašanje za Bascom 8051 in ne za Bascom Avr, ker namreč v slednjem ni omejitve na 255ms, pa tudi možno je uporabit ukaz Wait 0.5, kar pomeni pol sekunde, ali Wait 1 kar je ena sekunda, oziroma v zgornjem primeru
3000ms je enako Wait 3 (3 sekunde). Ne vem pa kako je z Wait ukazom v Basc. 8051. Trenutno nimam časa, da bi poskusil napisati program... _________________ Cheerio baj frm S58S Robert !
http://www.kapunar.eu |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1714 Aktiv.: 7.24 Kraj: Ig
|
Objavljeno: Sre Dec 22, 2004 7:20 pm Naslov sporočila: |
|
|
Živjo!
dim cas as word
tipka alias px.x
skok:
do
debounce tipka,0,povecaj ' preverjas stanje tipke, če je pritisnjena potem povecaj
loop
povecaj:
cas = cas+10 'inkrementiraš vrednost čas za 10ms
if cas > 3000 then 'če je čas večji od 3000ms
cas=0 'resetira vrednost
end if
goto skok: ' skoči nazaj na začetek
LP Gorazd _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Sre Dec 22, 2004 8:12 pm Naslov sporočila: |
|
|
Vilko, najlepsa hvala. Zadevo sem spravil v moj program in deluje super.
Hvala.
LP,marko _________________ Če ne veš kam greš, se ne moreš zgubiti. |
|
Nazaj na vrh |
|
 |
G-Lab Član


Pridružen-a: Sob 12 Jul 2003 9:44 Prispevkov: 179 Aktiv.: 0.76 Kraj: Jesenice
|
Objavljeno: Sre Dec 22, 2004 9:13 pm Naslov sporočila: |
|
|
Robertos: utdi v Bascom 8051 delije ukaz
wait 0.5 počaka pol sekunde ali
wait 3 počaka 3 sekunde
LP
Rok |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3359 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Čet Dec 23, 2004 9:08 am Naslov sporočila: Ne. |
|
|
Ne, ne moreš reči
wait 0.5 in s tem pričakovati, da bo čakal pol sekunde.
Bascom v ta namen uporablja spremenljivko veliko en bajt in noter daš lahko samo cela števila med 0 in 255.
Seveda pa lahko ukažeš
wait 3 in bo počakal 3 sekunde.
Bascom v ta namen izdela zakasnitveno zanko, ki si jo izračuna na osnovi frekvence kristala, ki mu jo poveš z
$crystal = 12000000
ukazom za 12 Mhz kristal. če mu tega ne poveš,. potem privzame neko vrednost, ki je definirana nekje med Compiler Options. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|