It must be strictly code. The following code is just a small, simple example of pulsing four outputs.
Code:
a var portb.0
b var portb.1
c var portb.2
d var portb.3
action:
for x = 1 to 5
a = 1
b = 1
c = 0
d = 0
pause 200
a = 0
b = 0
c = 0
d = 0
pause 200
next x
for x = 1 to 5
a = 0
b = 0
c = 1
d = 1
pause 200
a = 0
b = 0
c = 0
d = 0
pause 200
next x
goto action
What I want to do with the code is be able to change the assignment of the ports when an external input is received, therefore to be able to change the assignment as follows:
Code:
a var portb.3
b var portb.2
c var portb.1
d var portb.0
or
Code:
a var portb.0
b var portb.3
c var portb.2
d var portb.1
or
Code:
a var portb.0
b var portb.2
c var portb.1
d var portb.3
This is the only part I'm struggling with. I can do the rest of the code, but to change the assignment, I am having great difficulty.
As I said, I tried using if..then statements, select case, the above variables won't work once they've been set. I even tried using other variable to substitute for the port aliases. My setup didn't like it. To me it looks like it should work, but the pic might not see it that way.
Don't judge where the returns are and missing code. That was done just so you know that they didn't flow into each other. The way it works is that when action is run, it runs through its code continuously until a button is pressed. Once pressed, it jumps to an on..gosub command where it advances the pairing change option by one. When the pairs have been reassigned, it goes back to action and runs the code with the new pairing assignment.
Code:
a var portb.0
b var portb.1
c var portb.2
d var portb.3
e var word
f var word
g var word
h var word
pair1:
' 1 and 2 vs. 3 and 4
e = a
f = b
g = c
h = d
return ' return to pairing change
pair2:
' 1 and 4 vs. 2 and 3
e = a
f = d
g = b
h = c
return ' return to pairing change
action:
' alternating flash
for x = 1 to 5
e = 1
f = 1
g = 0
h = 0
pause 200
e = 0
f = 0
g = 0
h = 0
pause 200
next x
for x = 1 to 5
e = 0
f = 0
g = 1
h = 1
pause 200
e = 0
f = 0
g = 0
h = 0
pause 200
next x
Does any of this make any sense and am I at all on the right track or at least headed in the right direction or did I hit a dead end?
Bookmarks