Archief - [PROG]help: parallele poort sturing

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ArnoDF

Legacy Member
het is lang geleden dat ik nog iets met vb heb gedaan maar I is een byte en dan doet ge if I=2. Ik kan natuurlijk wel fout zijn.

Darth-Falcon

Legacy Member
ge zult de bits moeten moeten afzonderen als ge wilt zien of een kanaal hoog is, uw vb werkt alleen als er ten allen tijde maar 1 kanaal hoog is.

hoe ge da doet is aan u om uit te zoeken :)

d4_ev1l

Legacy Member
da was ni heel mijn programma he, da was gwn voor de zaak van het aan/ uit knopke uit te leggen, dit is de rest van de code
Code:
Dim O As Byte 'output
Dim A As Byte 'eerste kanaal
Dim B As Byte 'tweede kanaal
Dim C As Byte 'derde kanaal
Dim D As Byte 'vierde kanaal
Dim E As Byte 'vijfde kanaal
Dim F As Byte 'zesde kanaal
Dim G As Byte 'zevende kanaal
Dim H As Byte 'achtste kanaal
Dim I As Byte 'eerste kanaal AAN/UIT
Dim J As Byte 'tweede kanaal AAN/UIT
Dim K As Byte 'derde kanaal AAN/UIT
Dim L As Byte 'vierde kanaal AAN/UIT
Dim M As Byte 'vijfde kanaal AAN/UIT
Dim N As Byte 'zesde kanaal AAN/UIT
Dim P As Byte 'zevende kanaal AAN/UIT
Dim Q As Byte 'achtste kanaal AAN/UIT

Private Sub CB_01_click()

I = I + 1
A = 1
Label1 = "kanaal 1 aan"

If I = 2 Then
A = 0
I = 0
Label1 = "kanaal 1 uit"
End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub


Private Sub CB_02_Click()

J = J + 1
B = 2
Label2 = "kanaal 2 aan"

If J = 2 Then
B = 0
J = 0
Label2 = "kanaal 2 uit"

End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub


Private Sub CB_03_Click()

K = K + 1
C = 4
Label3 = "kanaal 3 aan"

If K = 2 Then
C = 0
K = 0
Label3 = "kanaal 3 uit"

End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub

Private Sub CB_04_Click()

L = L + 1
D = 8
Label4 = "kanaal 4 aan"

If L = 2 Then
L = 0
D = 0
Label4 = "kanaal 4 uit"
End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub

Private Sub CB_05_Click()

M = M + 1
E = 16
Label5 = "kanaal 5 aan"

If M = 2 Then
E = 0
M = 0
Label5 = "kanaal 5 uit"
End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub

Private Sub CB_06_Click()

N = N + 1
F = 32
Label6 = "kanaal 6 aan"

If N = 2 Then
N = 0
F = 0
Label6 = "kanaal 6 uit"

End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub

Private Sub CB_07_Click()

P = P + 1
G = 64
Label7 = "kanaal 7 aan"

If P = 2 Then
P = 0
G = 0
Label7 = "kanaal 7 uit"
End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub

Private Sub CB_08_Click()

Q = Q + 1
H = 128
Label8 = "kanaal 8 aan"

If Q = 2 Then
Q = 0
H = 0
Label8 = "kanaal 8 uit"
End If
O = A + B + C + D + E + F + G + H
Out &H378, O

End Sub

Private Sub CB_09_Click()
I = 0
J = 0
K = 0
L = 0
M = 0
N = 0
O = 0
P = 0
Q = 0
End Sub

Private Sub Label9_Click()

End Sub
en dit staat in een module om die dll in te laden, wat niet werkt...
Code:
Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

ArnoDF zei:
het is lang geleden dat ik nog iets met vb heb gedaan maar I is een byte en dan doet ge if I=2. Ik kan natuurlijk wel fout zijn.

een byte gaat tot 255 :)

Suicide Monkey

Legacy Member
Ik werk eigenlijk met VBA onder excel maar zou er het volgende van maken:

Code:
Private Sub CB_01_click()
if Label1 = "kanaal 1 aan" then
Label1 =  "kanaal 1 uit"
O =  O or 1
else
Label1 = "kanaal 1 aan"
O =  O and 254
end if
Out &H378, O

End Sub

Ik veronderstel dat de bits van O je datalijnen zijn. Met de or zet je dan een bit 1 en met de and zet je die terug op O. Bij dat in/uit schakelen van een kanaal vond ik dat er onnodig veel variabelen werden gebruikt. Dit is nu wel enkel voor 1 kanaal maar zou je gewoon kunnen aanpassen voor de rest.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan