Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. #include <avr/io.h>
  2.  
  3. #define gr 200
  4. #define led PD4
  5.  
  6. int R_s1_adc = 0;
  7. int R_s2_adc = 0;
  8. int R_s3_adc = 0;
  9. int R_s4_adc = 0;
  10. int L_s5_adc = 0;
  11. int L_s6_adc = 0;
  12. int L_s7_adc = 0;
  13. int L_s8_adc = 0;
  14. int wykrywanie(int8_t x);
  15. int main(void) {
  16. DDRD |= (1 << led);
  17. DDRC = 0b00000000; //cały port to wejście
  18.  
  19. ADMUX |= (1 << REFS0); //tryb
  20. ADCSRA |= (1 << ADPS1) | (1 << ADPS0); //prescaler 128
  21. ADCSRA |= (1 << ADEN); //ENABLE
  22.  
  23. ADCSRA |= 1 << ADSC; //single conversion
  24. Serial.begin(9600);
  25. while (1)
  26. {
  27. wykrywanie(68);
  28. Serial.println(R_s1_adc);
  29. delay(100);
  30. }
  31. }
  32.  
  33. int wykrywanie(int8_t x)
  34. {
  35. uint8_t theLow = ADCL;
  36. uint16_t wynik = ADCH << 8 | theLow;
  37.  
  38. switch (x)
  39. {
  40. case 0b01000000:
  41. L_s8_adc = wynik;
  42. ADMUX = 0b01000001;
  43. break;
  44. case 0b01000001:
  45. L_s7_adc = wynik;
  46. ADMUX = 0b01000010;
  47. break;
  48. case 0b01000010:
  49. R_s4_adc = wynik;
  50. ADMUX = 0b01000011;
  51. break;
  52. case 0b01000011:
  53. R_s3_adc = wynik;
  54. ADMUX = 0b01000100;
  55. break;
  56. case 0b01000100:
  57. ADMUX &= 0xF0;
  58. ADCSRA |= (1 << ADSC);
  59. while (ADCSRA & (1 << ADSC));
  60. R_s1_adc = ADCW;
  61. break;
  62. case 0b01000101:
  63. R_s2_adc = wynik;
  64. ADMUX = 0b01000110;
  65. break;
  66. case 0b01000110:
  67. L_s5_adc = wynik;
  68. ADMUX = 0x0b01000111;
  69. break;
  70. case 0b01000111:
  71. L_s6_adc = wynik;
  72. ADMUX = 0b01000000;
  73. break;
  74. default:
  75. //Default code
  76. break;
  77. }
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement