stankovic96

Untitled

Mar 20th, 2019
390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. //Treci projekat
  2. //Baudrate 9600 za serijsku komunikaciju
  3. //Freq 20MHz PLL8
  4. #include<p30fxxxx.h>
  5. #include "outcompare.h" //naknadno ubacen h fajl za PWM
  6. #include "timer.h"
  7. #include "timer2.h"
  8. #include "uart.h"
  9.  
  10. _FOSC(CSW_FSCM_OFF & XT_PLL8);//instruction takt je isti kao i kristal
  11. _FWDT(WDT_OFF);
  12.  
  13. unsigned int stoperica;
  14. unsigned int br=0;
  15.  
  16. void __attribute__((__interrupt__)) _T3Interrupt(void)//svakih 10us
  17. {
  18. TMR3 =0;
  19. stoperica++;
  20. IFS0bits.T3IF = 0;
  21. }
  22.  
  23. void Delay_us (unsigned int vreme)//funkcija za kasnjenje u milisekundama 0.1ms
  24. {
  25. stoperica = 0;
  26. while(stoperica < vreme);
  27. }
  28. void initPins()
  29. {
  30. //Za drajver L298N in1,in2,in3,in4
  31. ADPCFGbits.PCFG9=1;//digitalni
  32. ADPCFGbits.PCFG10=1;
  33. ADPCFGbits.PCFG11=1;
  34. ADPCFGbits.PCFG12=1;
  35.  
  36. TRISBbits.TRISB9=0;//izlazni
  37. TRISBbits.TRISB10=0;
  38. TRISBbits.TRISB11=0;
  39. TRISBbits.TRISB12=0;
  40. //------------------------------------------------
  41. //HC-SR04 Prvi
  42. TRISDbits.TRISD3=1;//ulazni pin ECHO
  43. TRISDbits.TRISD9=0;//izlazni pin TRIGGER
  44.  
  45. //HC-SR04 Drugi
  46. TRISDbits.TRISD2=1;//ulazni pin ECHO
  47. TRISDbits.TRISD8=0;//izlazni pin TRIGGER
  48.  
  49. //-------------------------------------------------
  50. //konfigurisemo kao izlaz za pwm
  51. TRISDbits.TRISD0=0;
  52. TRISDbits.TRISD1=0;
  53.  
  54. //-------------------------------------------------
  55. LATBbits.LATB9=0;//RB9,RB10,RB11,RB12 za upravljanje L298
  56. LATBbits.LATB10=0;
  57. LATBbits.LATB11=0;
  58. LATBbits.LATB12=0;
  59.  
  60. }
  61.  
  62. int main(void)
  63. {
  64. initUART1();
  65. init_T3();
  66. initPins();
  67. RS232_putst("Test");
  68. Delay_us(1000);
  69. unsigned int dist=0;
  70. int i;
  71. while(1)
  72. {
  73. //WriteUART1('0');
  74. for(i=0;i<10000;i++);
  75. LATDbits.LATD8=1;
  76. Delay_us(1);
  77. LATDbits.LATD8=0;
  78. //WriteUART1('1');
  79. while(PORTDbits.RD2==0);
  80. WriteUART1('K');
  81. while(PORTDbits.RD2==1)
  82. {
  83. Delay_us(1);
  84. br++;
  85. //WriteUART1('3');
  86. }
  87. WriteUART1('T');
  88. dist=br/8;
  89. br=0;
  90. //WriteUART1((dist%10)+48);
  91. WriteUART1dec2string(dist);
  92. WriteUART1(13);
  93.  
  94. Delay_us(60000);
  95. Delay_us(60000);
  96. Delay_us(60000);
  97.  
  98. }
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment