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 

Visual basic - pomoč pri vklopu relejev na LPT portu

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika za začetnike
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Tor Jun 18, 2013 7:38 pm    Naslov sporočila:  Visual basic - pomoč pri vklopu relejev na LPT portu Odgovori s citatom

Lep pozdrav!

Imam težavo. Spodaj je prilepljena koda iz Visual basic 1.0. Izdelujem program v MS-DOS okolju. Želim vklapljati in izklapljati 8 relejev na LPT portu, težava je v tem, da ko vklopim drugi rele, se mi prvi izključi. Kako naj zapišem kodo, da bo pravilna?

Koda:

Private Sub Command1_Click()
 port1 = 888
 Out port1, 1
 End Sub

 Private Sub Command10_Click()
 port1 = 888
 Out port1, 255
 End Sub

 Private Sub Command2_Click()
 port1 = 888
 Out port1, 2
 End Sub

 Private Sub Command3_Click()
 port1 = 888
 Out port1, 4
 End Sub

 Private Sub Command4_Click()
 port1 = 888
 Out port1, 8
 End Sub

 Private Sub Command5_Click()
 port1 = 888
 Out port1, 16
 End Sub

 Private Sub Command6_Click()
 port1 = 888
 Out port1, 32
 End Sub

 Private Sub Command7_Click()
 port1 = 888
 Out port1, 64
 End Sub

 Private Sub Command8_Click()
 port1 = 888
 Out port1, 128
 End Sub

 Private Sub Command9_Click()
 port1 = 888
 Out port1, 0
 End Sub

 

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matejcek81
Član
Član



Pridružen-a: Pon 16 Mar 2009 12:32
Prispevkov: 1526
Aktiv.: 7.70
Kraj: Maribor

PrispevekObjavljeno: Tor Jun 18, 2013 8:25 pm    Naslov sporočila:   Odgovori s citatom

Tole ti bo pomagalo.

Primer za prva dva releja:


Koda:
Private Sub Command1_Click()
 port1 = 888
 Out port1, 192
 End Sub


Vpiši 192 v tisto povezavo kot decimalno število in boš vugotovil v čem je finta.

LP

_________________
Če ne gre - ne obstaja!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Tor Jun 18, 2013 9:19 pm    Naslov sporočila:   Odgovori s citatom

To mi je jasno, v meniju programa imam 8 različnih tipk VKLOP in 8 različnih tipk IZKLOP. Problem je v tem, da ko je prvi rele vklopljen, se ta izključi, ko pritisnem tipko VKLOP za drugi rele, oziroma ne moram naključno vklopiti rele, brez da bi prejšnega vklopljenega izključil.
_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
airwolf
Član
Član



Pridružen-a: Sre 28 Maj 2008 17:17
Prispevkov: 2219
Aktiv.: 10.68
Kraj: Polhov Gradec

PrispevekObjavljeno: Tor Jun 18, 2013 9:32 pm    Naslov sporočila:   Odgovori s citatom

Tole pa ne bo šlo tako enostavno. Bo pa treba precej več kode.
Recimo ti imaš vključen rele 1, želiš vključiti še rele 2. Najprej mora koda ob kliku na gumb ali karkoli že pogledati ali je gumb rele 1 že aktiviran, če je mora uporabiti drugačno kodo kot če ni. Zdajle nimam ene ideje kako bi to naredil z minimalno količino kode, bi pa pogledal za kakšnim case stavkom.

_________________
LP Gašper
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
matejcek81
Član
Član



Pridružen-a: Pon 16 Mar 2009 12:32
Prispevkov: 1526
Aktiv.: 7.70
Kraj: Maribor

PrispevekObjavljeno: Tor Jun 18, 2013 9:52 pm    Naslov sporočila:   Odgovori s citatom

Kombinacij je 256. Tukaj se bi s kakšno case ali if programiral do brade.

Predlagam, da ustvariš kakšen array z osmimi pozicijami, s tipkami jim spremenjaš vrednost z IF stavkom. Na koncu pa pretvoriš binarno število(array) v decimalno in pošlješ na port.
LPT lahko tudi bereš, tako da je uporabljen kot vhod.

Kateri visual basic je to, ki deluje v dosu?

LP

_________________
Če ne gre - ne obstaja!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Tor Jun 18, 2013 9:54 pm    Naslov sporočila:   Odgovori s citatom

To sem mislil ja. Se bom poglobil v case stavek, imam še eno vprašanje, ker je e ravno tema odprta... Zanima me, kam bi vpisal kodo, ki bi se izvedla takoj ob zagonu mojega programa? Imam datoteko s končnico .frm ki (se mi zdi) je glavna, pod njo so pa podprogrami. Ker se izvajanje podprogramov izvede samo s pritiskom uporabnika, me zanima kam bi pisal kodo za postavitev vseh osmih izhodnih bitov LPT porta na logično 0. Sem čisto nov v teh vodah, zato brez zamere. Very Happy
_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Tor Jun 18, 2013 9:57 pm    Naslov sporočila:   Odgovori s citatom

To je Visual basic 1.0 za MS - DOS. Včeraj sem se začel malo igrati in sem do danes vizualno konec, nekaj sem delal z zvočnimi efekti, sedaj bi pa rad, da mi delajo še releji na izhodu.
_________________
Lep pozdrav!


Nazadnje urejal/a lamela123 Tor Jun 18, 2013 9:58 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
airwolf
Član
Član



Pridružen-a: Sre 28 Maj 2008 17:17
Prispevkov: 2219
Aktiv.: 10.68
Kraj: Polhov Gradec

PrispevekObjavljeno: Tor Jun 18, 2013 9:58 pm    Naslov sporočila:   Odgovori s citatom

Načeloma je vsaka verzija VB-ja sposobna narest konzolno aplikacijo.

Za tisto imaš pa form load akcijo. Kako prideš do nje?
dvoklkneš na na prazni del forme.

_________________
LP Gašper
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.87
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jun 18, 2013 10:02 pm    Naslov sporočila:   Odgovori s citatom

Rabiš dve funkciji
VklopiRele in IzklopiRele ter globalno spremenljivko npr. stanje_relejev.

VklopiRele: stanje_relejev = stanje_relejev (BITNI OR) parameter; stanje_relejev nato vpišeš v ustrezen izhodni register.

IzklopiRele: stanje_relejev = stanje_relejev (BITNI AND) negiran parameter; stanje_relejev nato vpišeš v ustrezen izhodni register.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matejcek81
Član
Član



Pridružen-a: Pon 16 Mar 2009 12:32
Prispevkov: 1526
Aktiv.: 7.70
Kraj: Maribor

PrispevekObjavljeno: Tor Jun 18, 2013 10:05 pm    Naslov sporočila:   Odgovori s citatom

Pri meni zgleda takole:

Koda:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    [b]'TUKAJ VSTAVIŠ KAJ SE NAJ IZVEDE PRI ZAGONU FORME[/b]

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub
End Class


LP

_________________
Če ne gre - ne obstaja!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7831
Aktiv.: 33.03
Kraj: Koprivnica HR

PrispevekObjavljeno: Tor Jun 18, 2013 10:21 pm    Naslov sporočila:   Odgovori s citatom

Confused


LPTsource.zip
 Opis:

Download
 Ime datoteke:  LPTsource.zip
 Velikost datoteke:  57.25 KB
 Downloadano:  15 krat


_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.17
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jun 18, 2013 11:25 pm    Naslov sporočila:   Odgovori s citatom

lamela123 je napisal/a:
To mi je jasno, v meniju programa imam 8 različnih tipk VKLOP in 8 različnih tipk IZKLOP. Problem je v tem, da ko je prvi rele vklopljen, se ta izključi, ko pritisnem tipko VKLOP za drugi rele, oziroma ne moram naključno vklopiti rele, brez da bi prejšnega vklopljenega izključil.

Algoritem je takšen:
Imaš neko variablo v kateri je sharnjeno stanje porta, recimo PortState tipa byte.
Lahko pa vsakič pred vpisovanjem v port prebereš vrednost porta in jo shraniš v PortState.

Če želiš vklopiti pin n potem je
PortState = PortState or n
Out port, PortState

Če želiš izklopiti pin n potem je
PortState = PortState and (0xFF - n)
Out port, PortState

Če želiš zamenjati stanje pina n potem je
PortState = PortState xor n
Out port, PortState

Vrednost n je enaka 2^pin, torej za pin 0 = 1, za pin 1 = 2 za pin 3 = 4...

PS:
Aha, saj je že int47 vse povedal...

LP GJ
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 -> Elektronika za začetnike Č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: 499 dni


Powered by phpBB © 2001, 2005 phpBB Group