www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Waitms 10 - 3000 ?

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Tor Dec 21, 2004 5:06 pm    Naslov sporočila:  Waitms 10 - 3000 ? Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Tor Dec 21, 2004 5:25 pm    Naslov sporočila:  Morda tako: Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Tor Dec 21, 2004 5:33 pm    Naslov sporočila:   Odgovori s citatom

Vilko, ni mi to vse jasno ali lahko malo Pokomentiras stavke!
Hvala

_________________
Če ne veš kam greš, se ne moreš zgubiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Tor Dec 21, 2004 8:04 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 22, 2004 9:13 am    Naslov sporočila:  Hm, Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sre Dec 22, 2004 9:20 am    Naslov sporočila:  bom napisal še malo drugače Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
robertos
Član
Član



Pridružen-a: Sre 11 Avg 2004 11:31
Prispevkov: 792
Aktiv.: 3.34
Kraj: Vuhred JN76OO

PrispevekObjavljeno: Sre Dec 22, 2004 5:26 pm    Naslov sporočila:  Re: bom napisal še malo drugače Odgovori s citatom

[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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1714
Aktiv.: 7.24
Kraj: Ig

PrispevekObjavljeno: Sre Dec 22, 2004 7:20 pm    Naslov sporočila:   Odgovori s citatom

Ž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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Sre Dec 22, 2004 8:12 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
G-Lab
Član
Član



Pridružen-a: Sob 12 Jul 2003 9:44
Prispevkov: 179
Aktiv.: 0.76
Kraj: Jesenice

PrispevekObjavljeno: Sre Dec 22, 2004 9:13 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Čet Dec 23, 2004 9:08 am    Naslov sporočila:  Ne. Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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