grounded,
here try this I made some changes in your program headers see if this works better for you.
Code:
@ DEVICE PIC16F676, HS_OSC, WDT_ON, PWRT_ON, PROTECT_OFF
DEFINE OSC 4
TRISC = %00010000
command_bit var bit
syncbit var byte
syncbyte var word
counter var byte
value var byte
Bits var byte
Time var byte
PAUSE 2000
Goto start
Sync_byte:
syncbyte = 0
while syncbyte < 700
pulsin portc.4, 1, syncbyte
wend
Return
Sync_bit:
syncbit = 0
while syncbit < 9
pulsin portc.4, 0, syncbit
wend
Return
Command_byte:
gosub sync_byte
pauseus 80
input portc.5 'first byte to send (LSB 1ST)Hex 18 %0001,1000
pauseus 312 '000
low portc.5
pauseus 208 '11
input portc.5
pauseus 312 '000
input portc.5 'Stop bits set high
Return
Start:
pause 1000
counter = 0
gosub Power_off
pause 10000
'gosub DelayTime
counter = 0
gosub Wakeup
'gosub Power_on
pause 3000
counter = 0
gosub Record_on
pause 10000
counter = 0
gosub Record_on
pause 500
goto Start
Power_off:
gosub Command_byte
gosub sync_bit
input portc.5 'Power off command #5E (LSB 1ST) %0101,1110
pauseus 104 '0
low portc.5
pauseus 416 '1111
input portc.5
pauseus 104 '0
low portc.5
pauseus 104 '1
input portc.5
pauseus 104 '0
input portc.5 'Stop bits set high
counter = counter + 1
if counter = 3 then Return
goto Power_off
Power_on:
gosub Command_byte
gosub Sync_bit
input portc.5
pauseus 208 '00 'Power on Command 5C (LSB 1ST) %0101,1100
low portc.5
pauseus 312 '111
input portc.5
pauseus 104 '0
low portc.5
pauseus 104 '1
input portc.5
pauseus 208 '00 ????? maybe 104
input portc.5 'Stop bits set high
counter = counter + 1
if counter = 5 then Return
goto Power_on
Record_on:
gosub Command_byte
gosub Sync_bit
low portc.5 'Start Recording
pauseus 208 '11 'Record On 33 (LSB 1ST) %0011,0011
input portc.5
pauseus 208 '00
low portc.5
pauseus 208 '11
input portc.5
pauseus 208 '00
input portc.5 'Stop bits set high
counter = counter + 1
if counter = 5 then Return
goto Record_on
DelayTime:
For Time = 0 to 60
pause 60000
Next Time
Return
Wakeup:
low portc.5 'This wakes camera up for short period to accept commands
pause 500
input portc.5
pause 100
RETURN
Bookmarks