Guest User

Untitled

a guest
Mar 17th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. //#include "D:\SERVOPROJ\F676_1\main.h"
  2. #include <16F676.h>
  3. #device adc=8
  4. #FUSES NOWDT, INTRC, NOPROTECT, NOBROWNOUT, NOMCLR, NOCPD, NOPUT, BANDGAP_HIGH
  5. #use delay(clock=4000000)
  6.  
  7. #define 20_MS 200
  8. #byte PORTC = 6
  9.  
  10. byte servo_idle, counter, milli_s;
  11. byte servo_delay[4] = {5, 5, 5 ,5};
  12.  
  13. #INT_RTCC
  14. clock_isr()
  15. {
  16. set_timer0(get_timer_0() + 49);
  17.  
  18. if(servo_idle)
  19. {
  20. milli_s--;
  21. if(milli_s== 0)
  22. {
  23. servo_idle = 0;
  24. milli_s= 20_MS;
  25. PORTC = 0x0F;
  26. }
  27. }
  28.  
  29. else
  30. {
  31. counter++;
  32. if(counter > 10)
  33. {
  34. int i;
  35. for(i = 0; i < 4; i++)
  36. {
  37. if(counter == servo_delay[i] + 10)
  38. PORTC &= ~(1<<i);
  39. }
  40. }
  41.  
  42. else if(counter == 20)
  43. {
  44. counter = 0;
  45. servo_idle = 1;
  46. }
  47. }
  48. }
  49.  
  50. void main()
  51. {
  52. servo_idle = 1;
  53. counter = 0;
  54. milli_s= 20_MS;
  55.  
  56. setup_vref(FALSE);
  57. setup_adc_ports(NO_ANALOGS|VSS_VDD);
  58. setup_adc(ADC_OFF);
  59. setup_comparator(NC_NC);
  60.  
  61. set_tris_c(0x30);
  62.  
  63. setup_timer_1(T1_DISABLED);
  64. setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
  65. set_timer0(49);
  66. enable_interrupts(INT_RTCC);
  67. enable_interrupts(GLOBAL);
  68.  
  69. while(true);
  70. }
Add Comment
Please, Sign In to add comment