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 

Bascom

 
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
rajko
Član
Član



Pridružen-a: Čet 29 Jun 2006 20:09
Prispevkov: 98
Aktiv.: 0.42
Kraj: Trbovlje

PrispevekObjavljeno: Pon Jul 03, 2006 7:01 pm    Naslov sporočila:  Bascom Odgovori s citatom

Zanima me ali se kdo ukvarja tudi s programiranjem v Bascomu?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
robika
Član
Član



Pridružen-a: Pon 05 Apr 2004 20:55
Prispevkov: 281
Aktiv.: 1.19
Kraj: ajdovščina

PrispevekObjavljeno: Pon Jul 03, 2006 7:14 pm    Naslov sporočila:   Odgovori s citatom

Seveda nas je tudi nekaj takih. Kaj te zanima?

Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rajko
Član
Član



Pridružen-a: Čet 29 Jun 2006 20:09
Prispevkov: 98
Aktiv.: 0.42
Kraj: Trbovlje

PrispevekObjavljeno: Pon Jul 03, 2006 8:08 pm    Naslov sporočila:   Odgovori s citatom

Rad bi bral stanje ene tipke, ki bi ob prvem pritisku izvedla eno operacijo ob drugem pritisku pa drugo operacijo, pri trtjem pritisku pa tretjo. Prva dva pritiska naj bi si sledila zaporedoma tretji pa po poljubnem času. Torej v zelo kratkem časovnem razmiku. Poizkušal sem z Debounce in Counterjem vendar ni delovalo kot sem želel. Ali morda pozna kdo bolj salamonsko rešitev ali je ta "edina"?
Hvala!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Domenius
Član
Član



Pridružen-a: Sre 30 Nov 2005 14:15
Prispevkov: 1188
Aktiv.: 5.02
Kraj: Medvode

PrispevekObjavljeno: Pon Jul 03, 2006 10:49 pm    Naslov sporočila:   Odgovori s citatom

Prilepi kodo - tisto s katero si preizkušal - bo malo lažje za nas.
_________________
It's electric!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.58

PrispevekObjavljeno: Tor Jul 04, 2006 10:03 am    Naslov sporočila:   Odgovori s citatom

Ce prav razumem, potem casovni zamik ne igra nobene vloge - ce naj si trije pritiski sledijo v zaporedju, je cas med njimi irelevanten, ne glede na to, da mora uporabnik vedno pritisne 2. hitro za prvim pritiskom, 3. pa dolgo za drugim pritiskom.

Ce je temu tako, potem je vse kar potrebujes ena preprosta neskoncna zanka, ki uporablja 3x debounce in vsakic naredi doloceno stvar (za 1. pritisk v zanki nekaj, za 2. nekaj drugega, itd.).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5528
Aktiv.: 24.06
Kraj: Domzale

PrispevekObjavljeno: Tor Avg 01, 2006 11:32 am    Naslov sporočila:   Odgovori s citatom

Če prav zastopim bi rad, da program dela tako, da ko prvič pritisneš tipko program naredi nekaj, nato ob naslednjem pritisku spet nekaj drugega in tako še tretjič.
Uporabi 3 do-loop zanke; v prvi gledaš prvi pritisk, v drugi drugi in v tretji tretji.
V tem primeru bi zadeva izgledala takole (brez debounce).

'pina.0 = vhod
'pinb.1 = izhod1
'pinb.2 = izhod2
'pinb.3 = izhod3

Config Porta = Input
Config portb = output

Inicializacija:
Reset portb.1
Reset portb.2
Reset portb.3

Zanka1:
Do
If pina.0 = 1 then
Set Portb.1
End If
Goto Zanka2
Loop

Zanka2:
Do
If Pina.0 = 1 Then
Set portb.2
Goto Zanka3
End if
Loop

Zanka3:
Do
If Pina.0 = 1 Then
Set portb.3
End if
Goto Kaj_sedaj
Loop

Kaj_sedaj: 'Kaj naj se zgodi po tretjem pritisku???
Goto Inicializacija 'npr. Vrnem se na začetek, izklopim vse izhode ter spet čakam na prvi pritisk



LP, Grega
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: Tor Avg 01, 2006 4:32 pm    Naslov sporočila:   Odgovori s citatom

Muvek, konceptualno vse ok, praktiča realizacija bo pa neuporabna. Zaradi odskakovanja kontakta tipke, ne bo pregleda, kaj se je zgodilo. To rešiš z debounce.


dim flag as bit, parameter as byte

Main:

Do

Debounce, tipka, 0, status ' ko je tipka 0, skoči na status

If parameter = 1 and flag = 1 then ' ko je parameter 1
' tukaj vmes vpiši kaj naj se zgodi po prvem pritisku
flag = 0 'ta flag postaviš, da se ti zanka izvede samo 1x
end if

if parameter = 2 and flag = 1 then
'tukaj napiši, kaj na j se zgodi po drugem pritisku
flag = 0
end if

if parameter = 3 and flag = 1 then
' tukaj napiši, kaj naj se zgodi po tretjem pritisku
parameter = 0 ' resetiraš parameter, tako da bo spet šlo s prvim pritiskom
flag = 0
end if

Loop

status:
incr parameter ' ob vsakem pritisku poveačaš parameter
flag = 1 ' postaviš flag, da se ti stvar izvede samo 1x
goto main 'skočiš v glavno zanko



To je to. Neodvisno od časa kdaj je bila tipka pritisnjena, nedovzetno na motnje odskakovanja kontakta tipke. malce več pisanja, Bascom itak kolobocija, a za se naučiti logike programiranja zadosti zmogljivo orodje, ki daje precej hitro rezultate.

Lp Gorazd

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
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: 491 dni


Powered by phpBB © 2001, 2005 phpBB Group