Próbuję odczytać napięcie z li-pola. Wszystko skonfigurowałem jak poniżej.
Kod:
gdzie poszczególne funkcje i definicje:
Na wyjściu ciągle dostaje same 0. Pomiędzy próbami pomiarów czekam 200ms. Oczywiście napięcie z baterii (3v7) jest podłączone do PF.1(ADC1). Potrafi mi ktoś z tym pomóc?
Kod:
DDRD=0xFF;
DDRF=0x00;
InitADC();
while(1);
{
PORTD=ReadADC(BATT);
TimeDelay(wait);
}
gdzie poszczególne funkcje i definicje:
#define BATT 1
void InitADC() // Inicjalizacja przetwornika A/C
{
ADMUX = 0x60; // 0 1 1 0 0 0 0 0 - napięcie odniesienia zewn. 5V
ADCSRA = 0x86; // 1 0 0 0 0 1 1 0 - przetwornik wł±czony, tryb 'ręczny', bez przerwania,
}
unsigned char ReadADC(char channel)
{
ADMUX &= 0xE0; // Wyzerowanie numeru kanału
ADMUX |= channel; // Wybór ż±danego kanału
bit_set(ADCSRA, ADSC); // Rozpoczęcie konwersjii
while(bit_get(ADCSRA, ADIF)==0); // Oczekiwanie na zakończenie konwersji
return (unsigned char)ADCH;
}Na wyjściu ciągle dostaje same 0. Pomiędzy próbami pomiarów czekam 200ms. Oczywiście napięcie z baterii (3v7) jest podłączone do PF.1(ADC1). Potrafi mi ktoś z tym pomóc?