Cześć, próbuję zbudować prosty termometr i mam problem. Ustawiłem wszystko związane z ADC (wydaje mi się, że poprawnie) i teraz tylko nie wiem jak poprawnie odczytać wartość, która została mi przekonwertowana. Którego rejestru mam do tego użyć? Muszę zrobić dodatkowo jeszcze jakieś przesunięcia bitowe? Dodam, że pin którego używam to PC1 (ADC1). Dziękuję za odpowiedzi.
/*
Program to control Atmega8A
*/
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
#include <hd44780.c>
int main(void)
{
char buffer[33];
uint16_t temperature;
// Insert code
DDRB |= (1 << PB0);
ADCSRA |= (1 << ADEN);
ADMUX |= (1 << REFS0);
ADMUX = 0x01;
LCD_Initalize();
while(1)
{
ADCSRA |= (1 << ADSC);
while(ADCSRA & (1 << ADSC));
temperature = ADCL;
itoa(temperature, buffer, 10);
LCD_Clear();
LCD_GoTo(2,0);
LCD_WriteText("Temperatura : ");
LCD_GoTo(5,1);
LCD_WriteText(buffer);
LCD_WriteText(" C");
_delay_ms(500);
PORTB |= (1 << PB0);
_delay_ms(1000); // delay 1 second
PORTB &= ~(1 << PB0);
_delay_ms(1000); // delay 1 second
}
return 0;
}