Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #define F_CPU 7372800UL
  2.  
  3. #include <avr/io.h>
  4. #include <util/delay.h>
  5. #include <avr/interrupt.h>
  6. #include <stdlib.h>
  7.  
  8. #include "lcd.h"
  9.  
  10. void writeLCD(uint16_t adc) {
  11. lcd_clrscr();
  12.  
  13. char adcStr[16];
  14. itoa(adc, adcStr, 10);
  15. lcd_puts(adcStr);
  16. }
  17.  
  18. ISR(ADC_vect) {
  19. uint16_t temp = ((ADC * 5.0/1024) - 0.5) * 1000/10; //koliko svaka promjena iznosi u voltima oznacava 5.0/1024,
  20. //ovih -0.5 je offside, *1000 milivolti i podijelimo s 10 da dobijemo celzijuse
  21.  
  22. writeLCD(temp);
  23. }
  24.  
  25. int main(void) {
  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(ADPS2) | _BV(ADPS1);
  36.  
  37. sei();
  38.  
  39. while (1) {
  40. ADCSRA |= _BV(ADSC);
  41.  
  42. _delay_ms(1000);
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement