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