Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. #include "lcd.h"
  4. #include <stdlib.h>
  5. #include <avr/interrupt.h>
  6.  
  7. uint16_t temp = 0;
  8.  
  9. void writeLcd(uint16_t adc)
  10. {
  11. lcd_clrscr();
  12.  
  13. char adcStr[16];
  14. itoa(adc, adcStr, 10);
  15. lcd_puts(adcStr);
  16. }
  17.  
  18. ISR(ADC_vect)
  19. {
  20. temp = ((ADC * 5.0/1024) - 0.5) * 1000/100;
  21. writeLcd(temp);
  22. }
  23.  
  24. int main(void)
  25. {
  26. DDRD = _BV(4);
  27.  
  28. TCCR1A = _BV(COM1B1) | _BV(WGM10);
  29. TCCR1B = _BV(WGM12) | _BV(CS11);
  30. OCR1B = 64;
  31.  
  32. lcd_init(LCD_DISP_ON);
  33.  
  34. ADMUX = _BV(REFS0);
  35. ADCSRA = _BV(ADEN) | _BV(ADIE) | _BV(ADPS1) | _BV(ADPS2);
  36. sei();
  37.  
  38. while (1)
  39. {
  40. ADCSRA |= _BV(ADSC);
  41. _delay_ms(1000);
  42. }
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement