uuu000

ADC ATT13

Sep 27th, 2021
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. /*
  2. * ADC attiny13.c
  3. *
  4. * Created: 29.08.2020 11:56:52
  5. * Author : Admin
  6. */
  7.  
  8. #include <avr/io.h>
  9. #define F_CPU 1000000UL
  10. #include <util/delay.h>
  11.  
  12. int main (void)
  13. {
  14. DDRB = 0b00000110;
  15. PORTB= 0x00;
  16.  
  17. /*** Настройка АЦП ***/
  18. ADCSRA |= (1 << ADEN) // Включение АЦП
  19. |(1 << ADPS1)|(1 << ADPS0); // предделитель преобразователя на 8
  20. ADMUX &= ~(1<< REFS0) ;// внешний ИОН
  21. ADMUX|=(1<<MUX0)|(1<<MUX1);// вход PB3
  22. //ADMUX&=~((1<<MUX1));// вход PB2
  23. //
  24. while(1)
  25. {
  26. unsigned int u;
  27. ADCSRA |= (1 << ADSC)|(1 << ADIF); // Начинаем преобразование
  28. //while ((ADCSRA&(1 << ADIF))== 0); // Ждем флага окончания преобразования
  29. while (ADCSRA & (1<<ADSC)){}
  30. //while (!(ADCSRA & (1<<ADIF))){}
  31. //u = (ADCL|ADCH << 8); // Считываем ADC
  32. u = ADCW;
  33.  
  34. if (u > 1) //0.625V
  35. PORTB = 0b00000010;
  36.  
  37. if (u > 665) //2.5V
  38. PORTB = 0b00000100;
  39.  
  40.  
  41. _delay_ms(50);
  42. }
  43. }
  44.  
  45.  
Advertisement
Add Comment
Please, Sign In to add comment