GeSHi (csharp):#include <18f1320.h>#fuses HS,MCLR,PUT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOCPD,NODEBUG,NOWRT#use delay(clock=20000000)#use rs232(baud=115200, xmit=PIN_B1, rcv=PIN_B4) static unsigned int16 ticks, DutyCycleK=0;static int1 flag_H_TO_L=0; #int_extvoid ext_isr() { if(flag_H_TO_L){ ticks=get_timer1(); ext_int_edge(0,L_TO_H); } else{ set_timer1(0); ext_int_edge(0,H_TO_L); ticks=0; } ++flag_H_TO_L; } void main() { static unsigned int16 uticks, DutyCycle; disable_interrupts(global); disable_interrupts(int_timer1); disable_interrupts(int_rda); disable_interrupts(int_ext); disable_interrupts(int_ext1); disable_interrupts(int_ext2); setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_counters(RTCC_INTERNAL,RTCC_DIV_2); setup_timer_0(RTCC_OFF); setup_timer_1(T1_INTERNAL | T1_DIV_BY_2); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED); port_b_pullups(FALSE); delay_ms(1000); flag_H_TO_L=0; ext_int_edge(0,L_TO_H); enable_interrupts(int_ext); enable_interrupts(int_rda); enable_interrupts(global); printf("\r\n18F1320 listen on RS232\r\n"); printf(" RC PWM Interceptor\r\n>"); do { if((ticks!=0)){ disable_interrupts(int_ext); uticks = ticks; ticks=0; DutyCycle = (unsigned int16) uticks * 10 / 5000; if(DutyCycleK!=DutyCycle){ printf("\r\n>%Lu",DutyCycle); DutyCycleK=DutyCycleK; } flag_H_TO_L=0; ext_int_edge(0,L_TO_H); enable_interrupts(int_ext); } } while (TRUE);}
GeSHi (csharp):#include <18f1320.h>#fuses HS,MCLR,PUT,NOWDT,NOPROTECT,BROWNOUT,BORV45,NOLVP,NOCPD,NODEBUG,NOWRT#use delay(clock=20000000)#use rs232(baud=115200, xmit=PIN_B1, rcv=PIN_B4) static unsigned int16 ticks, ticksK;static int1 flag_H_TO_L=0, flag_servo_1; #int_extvoid ext_isr() { if(flag_H_TO_L){ ticks=get_timer1(); ext_int_edge(0,L_TO_H); } else{ set_timer1(0); ext_int_edge(0,H_TO_L); ticks=0; output_high(PIN_B3); flag_servo_1=1; } ++flag_H_TO_L;} void main() { static unsigned int16 uticks; disable_interrupts(global); disable_interrupts(int_timer1); disable_interrupts(int_rda); disable_interrupts(int_ext); disable_interrupts(int_ext1); disable_interrupts(int_ext2); setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_counters(RTCC_INTERNAL,RTCC_DIV_2); setup_timer_0(RTCC_OFF); setup_timer_1(T1_INTERNAL | T1_DIV_BY_2); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED); port_b_pullups(FALSE); delay_ms(1000); flag_H_TO_L=0; ext_int_edge(0,L_TO_H); enable_interrupts(int_ext); flag_servo_1=0; enable_interrupts(int_rda); enable_interrupts(global); printf("\r\n18F1320 listen on RS232\r\n"); printf(" RC PWM Interceptor\r\n>"); do { if((ticks!=0)){ uticks = ticks; ticks=0; if(uticks != ticksK){ ticksK=uticks; } flag_H_TO_L=0; } if(flag_servo_1==1){ if(get_timer1()>ticksK){ output_low(PIN_B3); flag_servo_1=0; } } } while (TRUE);}