Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. void UART_ConvertDistance(unsigned long n){
  2. // as part of Lab 11 you implemented this function
  3.  
  4.  
  5. short i = 0, j = 0;
  6. unsigned short str_len;
  7. unsigned char reverse_str[15];
  8. unsigned long m = n;
  9.  
  10. if (m == 0) {
  11. str_len = 1;
  12. String[0] = 0x30;
  13. return;
  14. }
  15.  
  16. while (m != 0) {
  17. reverse_str[j] = m % 10 + 0x30;
  18. m /= 10;
  19. j++;
  20. }
  21.  
  22. str_len = j;
  23.  
  24. for (j = str_len - 1; j >= 0; j--) {
  25. String[i] = reverse_str[j];
  26. // the last digit in reverse_str[10] is the first one in String[10]
  27. i++; // increase the index of String[10]
  28. }
  29.  
  30. // second, go over each case
  31. // n has 1 digits
  32. if (n <= 9) {
  33. String[4] = String[0];
  34. String[0] = 0x30;
  35. String[1] = '.';
  36. String[2] = 0x30;
  37. String[3] = 0x30;
  38. String[5] = 0x20;
  39. String[6] = 'c';
  40. String[7] = 'm';
  41. }
  42. // n has 2 digits
  43. else if ((n >= 10) && (n <= 99)) {
  44. String[4] = String[1];
  45. String[3] = String[0];
  46. String[0] = 0x30;
  47. String[1] = '.';
  48. String[2] = 0x30;
  49. String[5] = 0x20;
  50. String[6] = 'c';
  51. String[7] = 'm';
  52. }
  53. // n has 3 digits
  54. else if ((n >= 100) && (n <= 999)) {
  55. String[4] = String[2];
  56. String[3] = String[1];
  57. String[2] = String[0];
  58. String[0] = 0x30;
  59. String[1] = '.';
  60. String[5] = 0x20;
  61. String[6] = 'c';
  62. String[7] = 'm';
  63. }
  64. // n has 4 digits
  65. else if ((n >= 1000) && (n <= 9999)) {
  66. String[4] = String[3];
  67. String[3] = String[2];
  68. String[2] = String[1];
  69. String[1] = '.';
  70. String[5] = 0x20;
  71. String[6] = 'c';
  72. String[7] = 'm';
  73. }
  74. // n has more than 4 digits (Overflow)
  75. else {
  76. String[0] = '*';
  77. String[1] = '.';
  78. String[2] = '*';
  79. String[3] = '*';
  80. String[4] = '*';
  81. String[5] = 0x20;
  82. String[6] = 'c';
  83. String[7] = 'm';
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement