Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include "D:\SERVOPROJ\F676_1\main.h"
- #include <16F676.h>
- #device adc=8
- #FUSES NOWDT, INTRC, NOPROTECT, NOBROWNOUT, NOMCLR, NOCPD, NOPUT, BANDGAP_HIGH
- #use delay(clock=4000000)
- #define 20_MS 200
- #byte PORTC = 6
- byte servo_idle, counter, milli_s;
- byte servo_delay[4] = {5, 5, 5 ,5};
- #INT_RTCC
- clock_isr()
- {
- set_timer0(get_timer_0() + 49);
- if(servo_idle)
- {
- milli_s--;
- if(milli_s== 0)
- {
- servo_idle = 0;
- milli_s= 20_MS;
- PORTC = 0x0F;
- }
- }
- else
- {
- counter++;
- if(counter > 10)
- {
- int i;
- for(i = 0; i < 4; i++)
- {
- if(counter == servo_delay[i] + 10)
- PORTC &= ~(1<<i);
- }
- }
- else if(counter == 20)
- {
- counter = 0;
- servo_idle = 1;
- }
- }
- }
- void main()
- {
- servo_idle = 1;
- counter = 0;
- milli_s= 20_MS;
- setup_vref(FALSE);
- setup_adc_ports(NO_ANALOGS|VSS_VDD);
- setup_adc(ADC_OFF);
- setup_comparator(NC_NC);
- set_tris_c(0x30);
- setup_timer_1(T1_DISABLED);
- setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
- set_timer0(49);
- enable_interrupts(INT_RTCC);
- enable_interrupts(GLOBAL);
- while(true);
- }
Add Comment
Please, Sign In to add comment