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 

Pomoč začetniku v Bascomu.

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



Pridružen-a: Pet 29 Jun 2007 0:46
Prispevkov: 239
Aktiv.: 1.09
Kraj: Maribor

PrispevekObjavljeno: Čet Dec 06, 2007 7:50 pm    Naslov sporočila:  Pomoč začetniku v Bascomu. Odgovori s citatom

Lep pozdrav.
Program:


Koda:
$regfile = "89c2051.dat"
$crystal = 4000000
$baud = 9600

Config Lcd = 16 * 1a
Config Lcdbus = 4
Config Lcdpin = Pin , Db7 = P1.7 , Db6 = P1.6 , Db5 = P1.5 , Db4 = P1.4 , E = P1.2 , Rs = P1.1
Cursor Off
Cls
Waitms 1



Do
Config Debounce = 1 Ms
Debounce P1.0 , 1 , Zastoj , Sub
Debounce P1.0 , 0 , Glavni , Sub
Debounce P3.7 , 1 , Poledica , Sub
Debounce P3.7 , 0 , Glavni , Sub

Loop
End

Glavni:
Do
Cls
Lcd "  VARNO VOZNJO  "
Waitms 500
Cls
Lcd "  VAM ZELI SERS "
Waitms 500
Return

Zastoj:
Do
Cls
Lcd "POZOR!!!  ZASTOJ"
Waitms 500
Cls
Lcd "PROMETA V TUNELO"
Waitms 500
Return

Poledica:
Do
Cls
Lcd " POZOR!!! MOKRO "
Waitms 500
Cls
Lcd "    CESTISCE    "
Waitms 500
Return

Poledicazastoj:
Do
Cls
Lcd "    POZOR!!!    "
Waitms 500
Cls
Lcd "    POLEDICA    "
Waitms 500
Cls
Lcd "       IN       "
Waitms 100
Cls
Lcd " ZASTOJ PROMETA "
Waitms 500
Return

End



Kako bi naredil: ko sta P1.0 in P3.7 na logični 1, da mi začne izvajat program Poledicazastoj in ko sta na na logični 0 pa mi začne izvajat program Glavni.
Ko pa je P1.0 na logični 1 pa mi mora začet izvajat program Zastoj.
Ko pa je P3.7 na logični 1 pa program Poledica.
Nekaj sem delal vendar mi ni pravilno delalo.

Hvala za pomoč!!!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



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

PrispevekObjavljeno: Čet Dec 06, 2007 8:10 pm    Naslov sporočila:   Odgovori s citatom

Za debounce ne klici takoj tistih procedur, ampak samo postavi ustrezno zastavico. Potem s pogojnimi stavki ugotovi katera kombinacija je trenutno aktivna in glede na to izvedi ustrezno proceduro.
_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
cimer
Član
Član



Pridružen-a: Sob 07 Okt 2006 0:07
Prispevkov: 122
Aktiv.: 0.54
Kraj: Ljubljana

PrispevekObjavljeno: Čet Dec 06, 2007 8:17 pm    Naslov sporočila:   Odgovori s citatom

Zdravo!

Najprej je poglejva uporabo funkcije Debounce. Na vsaki nogici mikrokontrolerja moraš pred uporabi tipke točno definirati stanje te nogice. Ponavadi jo preko "PULL UP" upora priključimo na napajanje (+5V - Logična ENA). S funkcijo Debounce pa potem gledaš kdaj se je stanje spremenilo na 0V - Logična NIČ. Takrat, ko pritisnemo tipko, ki je vezana med nogico mikrokontrolerja in maso.

Če pogledamo tvoj program se procedura oziroma podprogam "Poledicazastoj" nikoli ne bo zgodil, ker ga nikoli ne pokličeš.

Glavni del programa bi moral zgledati takole

Config Debounce = 1 Ms

Do
Debounce P1.0 , 0 , Zastoj , Sub
Debounce P3.7 , 0 , Poledica , Sub

GoSub Glavni

Loop
End

Ostala koda lahko ostane taka kot je. Tak način detekcije ti ne omogoča hkratnega sporočanja obeh situacij, ker program vedno najprej obdela en klic Debounce nato pa še drugega in se po zaključku podprograma "Zastoj" ali "Poledica" vedno vrne nazaj v glavni progam.

Toliko na kratko.

_________________
Lep pozdrav!

Marko S.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
infernal
Član
Član



Pridružen-a: Pet 29 Jun 2007 0:46
Prispevkov: 239
Aktiv.: 1.09
Kraj: Maribor

PrispevekObjavljeno: Čet Dec 06, 2007 8:45 pm    Naslov sporočila:   Odgovori s citatom

Marko hvala za odgovor .
Ali mi še mogoče lahko poveš za poledicazastoj.

Hvala.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
smatjaz
Član
Član



Pridružen-a: Pon 10 Nov 2003 16:33
Prispevkov: 846
Aktiv.: 3.57

PrispevekObjavljeno: Čet Dec 06, 2007 10:58 pm    Naslov sporočila:   Odgovori s citatom

Če sem te prav razumel, bi to naredil takole:

Koda:
Do
Config Debounce = 1 Ms
'Debounce P1.0 , 1 , Zastoj , Sub
Debounce P1.0 , 0 , Glavni , Sub
'Debounce P3.7 , 1 , Poledica , Sub
Debounce P3.7 , 0 , Glavni , Sub

If P1.0 = 1 Then
   Gosub Zastoj
End If

If P3.7 = 1 Then
   Gosub Poledica
End If

If P3.7 = 1 And P1.0 = 1then
   Gosub Poledicazastoj
End If

Loop
End
...



Nikakor ne priporočam Debounce za isti pin za vrednost 0 in 1. To mi ne gre skupaj.


LP M.

_________________
Električni aparati delujejo na dim ... ko dim iz njih uide ... ne delujejo več!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
infernal
Član
Član



Pridružen-a: Pet 29 Jun 2007 0:46
Prispevkov: 239
Aktiv.: 1.09
Kraj: Maribor

PrispevekObjavljeno: Čet Dec 06, 2007 11:21 pm    Naslov sporočila:   Odgovori s citatom

Sej mi je že Marko povedav pravilen odgovor, samo jaz "tele" ga nisem razumel.
Jutri bom preizkusil še tvojo verzijo, da vidim kako dela.

Hvala za pomoč!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
infernal
Član
Član



Pridružen-a: Pet 29 Jun 2007 0:46
Prispevkov: 239
Aktiv.: 1.09
Kraj: Maribor

PrispevekObjavljeno: Čet Dec 06, 2007 11:58 pm    Naslov sporočila:   Odgovori s citatom

Sem še smatjaz-ovo verzijo testiral in deluje bolje, tako da boste ostali vedeli če boste imeli takšne probleme.
Hvala Smatjaz.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
cimer
Član
Član



Pridružen-a: Sob 07 Okt 2006 0:07
Prispevkov: 122
Aktiv.: 0.54
Kraj: Ljubljana

PrispevekObjavljeno: Pet Dec 07, 2007 9:58 am    Naslov sporočila:   Odgovori s citatom

Zdravo!

Debounce je posebna funkcija v Bascomu, ki najprej preveri ali je tikpa pritisnjena določen čas in šele nato sproži akcijo, ki je vezana na tipko. Tako smo lahko prepričani, da je tipka res pritisnjena in da sprememba stanja na pinu ni posledica neke motnje.
Jaz jo uporabljam samo takrat kadar so na pine priključene tipke, za spremljanje stanj pinov pa je potrebno uporabiti primer kot ga je navedel smatjaz.

_________________
Lep pozdrav!

Marko S.
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