Dokładnie to próbowałem w ogóle uruchomić przetwornik po najprostszej linii oporu aby tylko go na razie uruchomić.
AVCC , GND i AREF podpiąłem do wspólnego zasilania układu beż żadnych elementów pośrednich ( kondensatorów czy dławików).
Mikroprocek postanowiłem ustawić w trybie Free Run, rozdzielczość 8-bit , a napięcie odniesienia z AVCC.
Procesor to ATMEGA16 z zegarem 16Mhz wszystko zasilane z 5V a efekt obserwuje poprzez uarta na monitorze( uart działa bo wyświetla liczby i znaki jeśli mu każe)
Napisałem więc program oto on:
Kod: Zaznacz cały
Kod:
#include <AVR\io.h>
#include "delay.h"
#include "uart.h"
int main(void)
{
DDRA=0;
PORTA=0;
int i=0;
UART_init();
UART_putstr("start\n\r");
ADMUX|=(1<<REFS0)|(1<<ADLAR);
ADCSRA|=(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
ADCSRA|=(1<<ADEN);
for(;;)
{
ADCSRA|=(1<<ADSC);
while(bit_is_set(ADCSRA,ADSC)){};
i=ADCH;
UART_putU08(i);
UART_putchar (',');
// delayms(100);
}
} Nie mam już pomysłu co może być czy wina procka czy programu
Prosze o pomoc.