My project has both USB and RS485 com ports. I would like to switch between active com ports by using a hardware dip switch. This would save a lot of code and time.
Code:
DS1 VAR PortA.1 ;dip switch
TX_USB VAR PortC.6
TX_RS485 VAR PortC.5
ComVar VAR BYTE
If DS1=1 then
ComVar=TX_USB
Else
ComVar=TX_RS485
EndIF
Serout1 ComVar, 84 [“Transmitting “]
OK, so we know this will not work. Melanie explained why in this post http://www.picbasic.co.uk/forum/showthread.php?t=11801 but stopped short of a solution to the problem, if there is one. I’ve found several posts on this subject, none of which find solutions.
So how do I set a Port Variable within a Serout statement to switch between two ports?
Code:
If DS1=1 then
ComVar=6
Else
ComVar=5
EndIF
If ComVar=7 then
Serout2 PortC.0[ComVar], 84, [“ Com is USB”]
Else
Serout2 PortC.0[ComVar], 84, [“ Com is RS485”]
EndIF
This compiles but it doesn’t work either, Is it for the same reasons the first example failed? There must be some way to solve this problem ??? There must be a different approach that I just haven’t found. Comments please.
Bookmarks