May 10, 2005

possibly final code?

pic 1 (only):
TRISB = %00000000


input portc.5
High portb.7
Low portb.6
dataByte var byte
dataByte2 var byte


DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
DEFINE CCP2_BIT 1 'Hpwm 2 pin bit


'output portb.3


init Var Byte
init = 0


loginTime Var Byte(80)
sendTime Var Byte(17)


h2 VAR BYTE
m2 Var BYTE
s2 Var BYTE

h VAR BYTE(2)
m Var BYTE(2)
s Var BYTE(2)

ndeg Var Word
nmin Var byte
wim1 Var byte


baseNum Var Byte


noon Var Byte
shift Var Byte
modify Var Byte

bank var byte(4)
bNum Var Byte
pinNum Var Byte(4)

tx var portc.6
rx var portc.7
xportRx var portC.0
xportTx var portA.1
xportDTR var portA.0
pic2tx Var portA.3
inv9600 con 16468 ' baudmode for seri.2 and serout2: 9600 8-N-1 inverted
non9600 con 84 ' baudmode for serin2 and serout2: 9600 8-N-1 non-inverted

i var byte ' counter
j Var Byte

led1 VAR portC.4
led2 VAR portC.3

High led2
'High portb.3


Pause 1000 ' Wait a second at startup

serout2 tx, inv9600, ["starts", 13, 10]

main:
'High portb.3
serout2 tx, inv9600, ["time loop starts", 13, 10]
SEROUT2 xporttx, non9600, ["C129.6.15.28/13", 10]
'SEROUT2 xporttx, non9600, ["C132.163.4.101/13", 10]
serin2 xportrx, non9600, 4000, main, [wait("5"), str loginTime\35]
pause 100
serout2 tx, inv9600, ["passed serin", 13, 10]
for i = 0 to 17
sendTime[i] = loginTime[i + 14]
next i
for j = 0 to 1
h[j] = loginTime[j + 14]
next j
for j = 0 to 1
m[j] = loginTime[j + 17]
next j
for j = 0 to 1
s[j] = loginTime[j + 20]
next j
h2 = (h[0]-48)*10 + (h[1]-48)
m2 = (m[0]-48)*10 + (m[1]-48)
s2 = (s[0]-48)*10 + (s[1]-48)
ndeg = (h2 * 60 / 4) + (m2 / 4)
nmin = ((m2 // 4) * 60 / 4) + (s2 / 4)
'serout2 xporttx, non9600, ["send all ", DEC ndeg ," degrees ", DEC nmin, " minutes ", 13, 10]
'serout2 xporttx, non9600, ["send ", STR nameArray, " " , str sendTime\17, "---", DEC ndeg ,"deg ", DEC nmin, "min", 13, 10]
'wim1 = nmin*60/255
wim1 = 255*nmin/60


baseNum =100

if portc.5=1 then
Noon = nmin/5
shift = nmin//5
modify = baseNum*shift/5
low led2
ELSE
Noon = ndeg/30
shift = ndeg//30
modify = baseNum*shift/30
high led2
ENDIF


bNum = noon//4
'pinNum = noon/4


bank[bNum] = (baseNum*2)-modify
pinNum[bNum] = noon/4

if bNum != 3 Then
bank[bNum +1] = baseNum + modify
pinNum[bNum +1] = noon/4
else
bank[0]= baseNum+ modify
bank[1] = modify
pinNum[0] = noon/4 +1
pinNum[1] = noon/4 +1
Endif

if bNum <2 Then
bank[bNum +2] =modify
else
if bNum = 2 Then
bank[0]= modify
pinNum[0] = noon/4 +1
Endif
Endif

if bNum>0 then
bank[bNum -1] = baseNum - modify
pinNum[bNum -1] = noon/4
else
bank[3] = baseNum - modify
pinNum[3] = noon/4-1
endif


If noon = 0 THEN
portB =%00111111
Endif


If noon = 1 THEN
portB =%00011111
Endif


If noon = 2 THEN
portB =%00001111
Endif


If noon = 3 THEN
portB =%10000111
Endif


If noon = 4 THEN
portB =%11000011
Endif


If noon = 5 THEN
portB =%11100011
Endif


If noon = 6 THEN
portB =%11110011
Endif


If noon = 7 THEN
portB =%11111011
Endif


If noon > 7 and noon <11 THEN
portB =%11111111
Endif


IF noon = 11 THEN
portB =%01111111
Endif


serout2 pic2tx, inv9600, ["yes", noon, bank[2], bank[3]]
serout2 pic2tx, inv9600, ["yes", noon, bank[2], bank[3]]
serout2 pic2tx, inv9600, ["yes", noon, bank[2], bank[3]]

serout2 tx, inv9600, [DEC noon, " ",Dec bank[0] ," ", Dec bank[1] ," ",Dec bank[2] ," ",dec bank[3] ," ", 10,13]

serout2 tx, inv9600, [str sendTime\8, 13, 10, DEC ndeg ," degrees ", DEC nmin, " minutes ", 13, 10, Dec noon, " " ,Dec shift, " " ,Dec modify, 13, 10, " wim1=" ,Dec wim1, 13, 10]
Hpwm 1, bank[0], 1000
Hpwm 2, bank[1], 1000
'Hpwm 1, 200, 1000
'Hpwm 2, 255, 1000
Pause 1000
goto main

Posted by William Blaze at 12:53 PM | TrackBack

May 09, 2005

continuous code

pic 1


TRISB = %00000000


High portb.7
Low portb.6
dataByte var byte
dataByte2 var byte

DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
DEFINE CCP2_BIT 1 'Hpwm 2 pin bit

'output portb.3

init Var Byte
init = 0

loginTime Var Byte(80)
sendTime Var Byte(17)

h2 VAR BYTE
m2 Var BYTE
s2 Var BYTE


h VAR BYTE(2)
m Var BYTE(2)
s Var BYTE(2)


ndeg Var Word
nmin Var byte
wim1 Var byte

baseNum Var Byte

noon Var Byte
shift Var Byte
modify Var Byte


bank var byte(4)
bNum Var Byte
pinNum Var Byte(4)


tx var portc.6
rx var portc.7
xportRx var portC.0
xportTx var portA.1
xportDTR var portA.0
pic2tx Var portA.3
inv9600 con 16468 ' baudmode for seri.2 and serout2: 9600 8-N-1 inverted
non9600 con 84 ' baudmode for serin2 and serout2: 9600 8-N-1 non-inverted


i var byte ' counter
j Var Byte


led1 VAR portC.4
led2 VAR portC.3


High led2
'High portb.3

Pause 1000 ' Wait a second at startup


serout2 tx, inv9600, ["starts", 13, 10]


main:
'High portb.3
serout2 tx, inv9600, ["time loop starts", 13, 10]
SEROUT2 xporttx, non9600, ["C129.6.15.28/13", 10]
'SEROUT2 xporttx, non9600, ["C132.163.4.101/13", 10]
serin2 xportrx, non9600, 4000, main, [wait("5"), str loginTime\35]
pause 100
serout2 tx, inv9600, ["passed serin", 13, 10]
for i = 0 to 17
sendTime[i] = loginTime[i + 14]
next i
for j = 0 to 1
h[j] = loginTime[j + 14]
next j
for j = 0 to 1
m[j] = loginTime[j + 17]
next j
for j = 0 to 1
s[j] = loginTime[j + 20]
next j
h2 = (h[0]-48)*10 + (h[1]-48)
m2 = (m[0]-48)*10 + (m[1]-48)
s2 = (s[0]-48)*10 + (s[1]-48)
ndeg = (h2 * 60 / 4) + (m2 / 4)
nmin = ((m2 // 4) * 60 / 4) + (s2 / 4)
'serout2 xporttx, non9600, ["send all ", DEC ndeg ," degrees ", DEC nmin, " minutes ", 13, 10]
'serout2 xporttx, non9600, ["send ", STR nameArray, " " , str sendTime\17, "---", DEC ndeg ,"deg ", DEC nmin, "min", 13, 10]
'wim1 = nmin*60/255
wim1 = 255*nmin/60

baseNum =100

Noon = nmin/5
shift = nmin//5
modify = baseNum*shift/5


'Noon = ndeg/30
'shift = ndeg//30
'modify = baseNum*shift/30


bNum = noon//4
'pinNum = noon/4

bank[bNum] = (baseNum*2)-modify
pinNum[bNum] = noon/4


if bNum != 3 Then
bank[bNum +1] = baseNum + modify
pinNum[bNum +1] = noon/4
else
bank[0]= baseNum+ modify
bank[1] = modify
pinNum[0] = noon/4 +1
pinNum[1] = noon/4 +1
Endif


if bNum <2 Then
bank[bNum +2] =modify
else
if bNum = 2 Then
bank[0]= modify
pinNum[0] = noon/4 +1
Endif
Endif


if bNum>0 then
bank[bNum -1] = baseNum - modify
pinNum[bNum -1] = noon/4
else
bank[3] = baseNum - modify
pinNum[3] = noon/4-1
endif

If noon = 0 THEN
portB =%00111111
Endif

If noon = 1 THEN
portB =%00011111
Endif

If noon = 2 THEN
portB =%00001111
Endif

If noon = 3 THEN
portB =%10000111
Endif

If noon = 4 THEN
portB =%11000011
Endif

If noon = 5 THEN
portB =%11100011
Endif

If noon = 6 THEN
portB =%11110011
Endif

If noon = 7 THEN
portB =%11111011
Endif

If noon > 7 and noon <11 THEN
portB =%11111111
Endif

IF noon = 11 THEN
portB =%01111111
Endif

serout2 pic2tx, inv9600, ["yes", noon, bank[2], bank[3]]
serout2 pic2tx, inv9600, ["yes", noon, bank[2], bank[3]]
serout2 pic2tx, inv9600, ["yes", noon, bank[2], bank[3]]


serout2 tx, inv9600, [DEC noon, " ",Dec bank[0] ," ", Dec bank[1] ," ",Dec bank[2] ," ",dec bank[3] ," ", 10,13]


serout2 tx, inv9600, [str sendTime\8, 13, 10, DEC ndeg ," degrees ", DEC nmin, " minutes ", 13, 10, Dec noon, " " ,Dec shift, " " ,Dec modify, 13, 10, " wim1=" ,Dec wim1, 13, 10]
Hpwm 1, bank[0], 1000
Hpwm 2, bank[1], 1000
'Hpwm 1, 200, 1000
'Hpwm 2, 255, 1000
Pause 1000
goto main


#########################################
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#########################################
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

pic 2:


TRISB = %00000000


DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
DEFINE CCP2_BIT 1 'Hpwm 2 pin bit


indata Var Byte(80)


ndeg Var Word
nmin Var byte
wim1 Var byte


noon Var byte
shift Var byte
modify Var byte


bank var byte(4)
bNum Var Byte
pinNum Var Byte(4)


j Var Byte


w Var BYTE(3)


tx var portc.6
rx var portc.7
inv9600 con 16468 ' baudmode for seri.2 and serout2: 9600 8-N-1 inverted
non9600 con 84 ' baudmode for serin2 and serout2: 9600 8-N-1 non-inverted


led1 VAR portC.4
led2 VAR portC.3


High led2


Pause 1000 ' Wait a second at startup
low led2


''''''''''''''''''''''


main:


serin2 rx, inv9600, 4000, main, [wait("yes"), noon, bank[2], bank[3]]
'serin2 rx, inv9600, 4000, main, [wait("yes")]
pause 5


serout2 tx, inv9600, [DEC noon, ", ", dec bank[2], ", ", dec bank[3], 13, 10]

If noon = 5 THEN
portB =%01111111
Endif

If noon = 6 THEN
portB =%00111111
Endif

If noon = 7 THEN
portB =%00011111
Endif

If noon = 8 THEN
portB =%00001111
Endif

If noon = 9 THEN
portB =%10000111
Endif

If noon = 10 THEN
portB =%11000011
Endif

If noon = 11 THEN
portB =%11100011
Endif

If noon = 0 THEN
portB =%11110011
Endif

If noon = 1 THEN
portB =%11111011
Endif

If noon > 1 and noon < 5 THEN
portB =%11111111
Endif

high led2
Hpwm 1, bank[2], 1000
Hpwm 2, bank[3], 1000
'Hpwm 1, 200, 1000
'Hpwm 2, 255, 1000
Pause 100
low led2
goto main

Posted by William Blaze at 12:49 AM | TrackBack