Advertisement
Guest User

Untitled

a guest
May 25th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. #include "core.h"
  2.  
  3. #include "drivers\board.h"
  4.  
  5. void swap(UI32 *xp, UI32 *yp);
  6. void selectionSort(UI32 arr[], UI32 n);
  7.  
  8. void main(CSTR arg)
  9. {
  10. //ESP8266.Control(true);
  11. //ESP8266.Open(115200, false);
  12. //---
  13. HCSR04.Open(3);
  14. //---
  15. HC05.Open(38400, true);
  16. //---
  17. const int sensorDataSize = 10;
  18. UI32 sensorData[sensorDataSize] = {0};
  19. PWM.Open(0,490,2000);
  20. PWM.Open(1,490,2000);
  21. PWM.Open(2,490,2000);
  22. PWM.Open(3,490,2000);
  23. SERVO.Open(0);
  24. unsigned char inpData[10]={0};
  25.  
  26. UI16 Result1=1000;
  27. UI16 Result2=1500;
  28. UI16 Result3=1500;
  29. UI16 Result4=1500;
  30. UI16 Result5=1000;
  31. //UART5.Open(9600,false);
  32. while(1)
  33. {
  34.  
  35.  
  36. for(int i = 0; i < sensorDataSize; i++)
  37. {
  38. sensorData[i]=HCSR04.Read(3);
  39. sensorData[i] /=10;
  40. }
  41.  
  42. selectionSort(sensorData, sensorDataSize);
  43. UI32 data = sensorData[sensorDataSize/2];
  44.  
  45. UI32 dataSize = 0;
  46. /* while(dataSize < 1)
  47. {
  48. dataSize += HC05.Read(inpData+dataSize,1 - dataSize);
  49. }
  50. */
  51. while(dataSize < 10)
  52. {
  53. dataSize += HC05.Read(inpData+dataSize,10 - dataSize);
  54. //Sleep(10);
  55. }
  56. /*
  57. if(inpData[0]=='D')
  58. Result1=1300;
  59. if(inpData[0]=='U')
  60. Result1=1800;
  61. if(inpData[0]=='L')
  62. Result2=1300;
  63. if(inpData[0]=='R')
  64. Result2=1800;
  65. if(inpData[0]=='F')
  66. Result3=1300;
  67. if(inpData[0]=='S')
  68. Result3=1800;
  69. if(inpData[0]=='W')
  70. Result4=1300;
  71. if(inpData[0]=='B')
  72. Result4=1800;
  73. if(inpData[0]=='1')
  74. Result5=1200;
  75. if(inpData[0]=='2')
  76. Result5=1500;
  77. if(inpData[0]=='3')
  78. Result5=1900;
  79. */
  80. //Sleep(1000);
  81. Result1=(UI16)inpData[0] <<8 | inpData[1];
  82. Result2=(UI16)inpData[2] <<8 | inpData[3];
  83. Result3=(UI16)inpData[4] <<8 | inpData[5];
  84. Result4=(UI16)inpData[6] <<8 | inpData[7];
  85. Result5=(UI16)inpData[8] <<8 | inpData[9];
  86. //HC05.Read(inpData,10);
  87. //UART5.Read(inpData,10);
  88. //HC05.Write(&data, 4);
  89. // Sleep(10);
  90. PWM.Write(0,Result3);
  91. PWM.Write(1,Result4);
  92. PWM.Write(2,Result5);
  93. PWM.Write(3,Result1);
  94. SERVO.Write(0,Result2*10);
  95. /*Sleep(1000);
  96. Result1=1000;
  97. Result2=1500;
  98. Result3=1500;
  99. Result4=1500;
  100. PWM.Write(0,Result1);
  101. PWM.Write(1,Result2);
  102. PWM.Write(2,Result3);
  103. PWM.Write(3,Result4);
  104. */
  105. //Sleep(100);
  106. }
  107.  
  108.  
  109. }
  110.  
  111.  
  112. void swap(UI32 *xp, UI32 *yp)
  113. {
  114. UI32 temp = *xp;
  115. *xp = *yp;
  116. *yp = temp;
  117. }
  118.  
  119. void selectionSort(UI32 arr[], UI32 n)
  120. {
  121. UI32 i, j, min_idx;
  122.  
  123. // One by one move boundary of unsorted subarray
  124. for (i = 0; i < n-1; i++)
  125. {
  126. // Find the minimum element in unsorted array
  127. min_idx = i;
  128. for (j = i+1; j < n; j++)
  129. if (arr[j] < arr[min_idx])
  130. min_idx = j;
  131.  
  132. // Swap the found minimum element with the first element
  133. swap(&arr[min_idx], &arr[i]);
  134. }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement