ÐÏࡱá>þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot EntryÿÿÿÿÿÿÿÿpþxŽ"zÈþÿÿÿMAIN ÿÿÿÿÿÿÿÿÿÿÿÿ Pÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ16f877a,ÿþÿ0x2007,0x3f3a ÿþÿÿþÿÿÿ RSFlowlineÿþÿMainXXÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿKûÿÿÿÿÿÿÿÿ ÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿÿRSStartStopCmdÿþÿMainÿÿRSCalculationCmdÿþÿ Calculationÿÿ Calculationÿþÿ0ÿþÿ servo_pos[0]€ÿþÿ16ÿþÿ servo_pos[1]€ÿþÿ32ÿþÿ servo_pos[2]€ÿþÿ48ÿþÿ servo_pos[3]€ÿþÿ64ÿþÿ servo_pos[4]€ÿþÿ80ÿþÿ servo_pos[5]€ÿþÿ96ÿþÿ servo_pos[6]€ÿþÿ112ÿþÿ servo_pos[7]€ÿþÿ Calculation€ÿþÿ0ÿþÿservo_ch€ÿþÿ0ÿþÿtempÿÿ RSCCodeCmdÿþÿ Configure CCPÿþÿ=ccpr1h = 0x06; ccpr1l = 0x18; ccpr2h = 0x02; ccpr2l = 0x70; ÿÿRSInterruptCmdÿþÿ InterruptÿþÿCCP1_isrÿþÿTMR0ÿþÿCCP1 isrÿþÿCCP1IEÿþÿpie1ÿþÿCCP1IFÿþÿpir1ÿþÿ0t1con = 0x31; ccp1con = 0x0b; intcon.PEIE = 1;ÿþÿCif (pir1 & (1 << CCP1IF)) { FCM_%n(); clear_bit(pir1, CCP1IF); } ÿþÿ>t1con = 0x31; ccp1con = 0x0b; intcon.PEIE = 1;pie1.CCP1IE=1;ÿþÿpie1.CCP1IE=0; €ÿþÿ InterruptÿþÿCCP2_isrÿþÿTMR0ÿþÿCCP2 isrÿþÿCCP2IEÿþÿpie2ÿþÿCCP2IFÿþÿpir2ÿþÿ0t1con = 0x31; ccp2con = 0x0a; intcon.PEIE = 1;ÿþÿCif (pir2 & (1 << CCP2IF)) { FCM_%n(); clear_bit(pir2, CCP2IF); } ÿþÿ@t1con = 0x31; ccp2con = 0x0a; intcon.PEIE = 1; pie2.CCP2IE=1; ÿþÿpie2.CCP2IE=0; ÿÿ RSLoopCmdÿþÿLoopÿþÿ1ÿþÿMainXXÿþÿ€ÿþÿMain€ÿþÿ Calculation€ÿþÿ20ÿþÿ servo_pos[1]ÿÿ RSDelayCmdÿþÿDelayÿþÿ20€ÿþÿ Calculation€ÿþÿ servo_pos[0]ÿþÿtemp€ÿþÿtemp + 2ÿþÿtempÿÿ RSDecisionCmdÿþÿDecisionÿþÿ temp >= 116ÿþÿMainXXÿþÿ€ÿþÿMain€ÿþÿ Calculation€ÿþÿtempÿþÿ servo_pos[0]€ÿþÿMainÿþÿMainXXÿþÿ€ÿþÿMain€ÿþÿ Calculation€ÿþÿ0ÿþÿ servo_pos[0]€ÿþÿ Calculation€ÿþÿ90ÿþÿ servo_pos[1]€ÿþÿDelayÿþÿ1€ÿþÿMain€ÿþÿMain€ÿþÿMain€ÿþÿCCP1_isrXXÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿKBBÍ`ÿÿÿÿÿÿÿÿ ÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿ€ÿþÿCCP1_isr€ÿþÿ Calculation€ÿþÿ( servo_ch + 1 ) AND 0x07ÿþÿservo_ch€ÿþÿ Calculation€ÿþÿ( 1 << servo_ch )ÿþÿservo_onÿÿ RSOutputCmdÿþÿOutputÿþÿservo_on€ÿþÿ Calculation€ÿþÿservo_pos[servo_ch] + 77ÿþÿ servo_val€ÿþÿ( servo_val << 3 )ÿþÿservo_l€ÿþÿ( servo_val >> 5 )ÿþÿservo_h€ÿþÿC Codeÿþÿ+ccpr2h = FCV_SERVO_H; ccpr2l = FCV_SERVO_L;€ÿþÿCCP1_isr€ÿþÿCCP2_isrXXÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿðð ÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿHÿþÿ16f877a,ÿþÿ0x2007,0x3f3a ÿþÿÿþÿÿÿ RSFlowlineÿþÿMainXXÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿKûÿÿÿÿÿÿÿÿ ÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿÿRSStartStopCmdÿþÿMainÿÿRSCalculationCmdÿþÿ Calculationÿÿ Calculationÿþÿ0ÿþÿ servo_pos[0]€ÿþÿ16ÿþÿ servo_pos[1]€ÿþÿ32ÿþÿ servo_pos[2]€ÿþÿ48ÿþÿ servo_pos[3]€ÿþÿ64ÿþÿ servo_pos[4]€ÿþÿ80ÿþÿ servo_pos[5]€ÿþÿ96ÿþÿ servo_pos[6]€ÿþÿ112ÿþÿ servo_pos[7]€ÿþÿ Calculation€ÿþÿ0ÿþÿservo_ch€ÿþÿ0ÿþÿtempÿÿ RSCCodeCmdÿþÿ Configure CCPÿþÿ=ccpr1h = 0x06; ccpr1l = 0x18; ccpr2h = 0x02; ccpr2l = 0x70; ÿÿRSInterruptCmdÿþÿ InterruptÿþÿCCP1_isrÿþÿTMR0ÿþÿCCP1 isrÿþÿCCP1IEÿþÿpie1ÿþÿCCP1IFÿþÿpir1ÿþÿ0t1con = 0x31; ccp1con = 0x0b; intcon.PEIE = 1;ÿþÿCif (pir1 & (1 << CCP1IF)) { FCM_%n(); clear_bit(pir1, CCP1IF); } ÿþÿ>t1con = 0x31; ccp1con = 0x0b; intcon.PEIE = 1;pie1.CCP1IE=1;ÿþÿpie1.CCP1IE=0; €ÿþÿ InterruptÿþÿCCP2_isrÿþÿTMR0ÿþÿCCP2 isrÿþÿCCP2IEÿþÿpie2ÿþÿCCP2IFÿþÿpir2ÿþÿ0t1con = 0x31; ccp2con = 0x0a; intcon.PEIE = 1;ÿþÿCif (pir2 & (1 << CCP2IF)) { FCM_%n(); clear_bit(pir2, CCP2IF); } ÿþÿ@t1con = 0x31; ccp2con = 0x0a; intcon.PEIE = 1; pie2.CCP2IE=1; ÿþÿpie2.CCP2IE=0; ÿÿ RSLoopCmdÿþÿLoopÿþÿ1ÿþÿMainXXÿþÿ€ÿþÿMain€ÿþÿ Calculation€ÿþÿ20ÿþÿ servo_pos[1]ÿÿ RSDelayCmdÿþÿDelayÿþÿ20€ÿþÿ Calculation€ÿþÿ servo_pos[0]ÿþÿtemp€ÿþÿtemp + 2ÿþÿtempÿÿ RSDecisionCmdÿþÿDecisionÿþÿ temp >= 116ÿþÿMainXXÿþÿ€ÿþÿMain€ÿþÿ Calculation€ÿþÿtempÿþÿ servo_pos[0]€ÿþÿMainÿþÿMainXXÿþÿ€ÿþÿMain€ÿþÿ Calculation€ÿþÿ0ÿþÿ servo_pos[0]€ÿþÿ Calculation€ÿþÿ90ÿþÿ servo_pos[1]€ÿþÿDelayÿþÿ1€ÿþÿMain€ÿþÿMain€ÿþÿMain€ÿþÿCCP1_isrXXÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿKBBÍ`ÿÿÿÿÿÿÿÿ ÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿ€ÿþÿCCP1_isr€ÿþÿ Calculation€ÿþÿ( servo_ch + 1 ) AND 0x07ÿþÿservo_ch€ÿþÿ Calculation€ÿþÿ( 1 << servo_ch )ÿþÿservo_onÿÿ RSOutputCmdÿþÿOutputÿþÿservo_on€ÿþÿ Calculation€ÿþÿservo_pos[servo_ch] + 77ÿþÿ servo_val€ÿþÿ( servo_val << 3 )ÿþÿservo_l€ÿþÿ( servo_val >> 5 )ÿþÿservo_h€ÿþÿC Codeÿþÿ+ccpr2h = FCV_SERVO_H; ccpr2l = FCV_SERVO_L;€ÿþÿCCP1_isr€ÿþÿCCP2_isrXXÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿðð ÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿÿþÿþÿÿÿ€ÿþÿCCP2_isr7€ÿþÿOutputÿþÿ0€ÿþÿCCP2_isrÿþÿ SERVO_POSÿÿVariableÿþÿ servo_posÿþÿTEMPC€ÿþÿtempÿþÿSERVO_HC€ÿþÿservo_hÿþÿSERVO_ONC€ÿþÿservo_onÿþÿSERVO_LC€ÿþÿservo_lÿþÿ SERVO_VALC€ÿþÿ servo_valÿþÿSERVO_CHC€ÿþÿservo_chÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿ