Jestem już lekko zrezygnowany moimi próbami, proszę jedynie o sprawdzenie kodu:
Kod: Zaznacz cały
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#define LED2 PB0 //definicja LED2 (do którego pinu podłączony LED2)
//#define KLAWISZ PC0 //definicja KLAWISZ (do którego pinu podłączony klawisz)
#define ADCIN PC0 //definicja ADCIN (wejście ADC)
int main(void)
{
ADCSRA = (1<<ADEN) //ADEN: ADC Enable (uruchomienie przetwornika)
|(1<<ADPS0) //ADPS2:0: ustawienie preskalera, preskaler= 128
|(1<<ADPS1)
|(1<<ADPS2);
ADMUX = (1<<REFS0); //REFS1:0: Reference Selection Bits //AVcc with external capacitor.
//ustawienie wejśc/wyjść
DDRB |=(1<<LED2); //Ustawienie pinów sterujących diodami jako wyjścia
DDRC &=~ (1<<ADCIN); //Ustawienie Wejścia ADC
PORTC |= (1<<LED2); //stan wysoki
volatile uint16_t temp;
while(1)//pętla główna
{
_delay_ms(100);
ADCSRA |= (1<<ADSC); //ADSC: uruchomienie pojedynczej konwersji
while(ADCSRA & (1<<ADSC)); //czeka na zakończenie konwersji
temp=ADCW;
if(temp<=512)
{
PORTC &=~ (1<<LED2);
}
else if(temp>512)
{
PORTC |= (1<<LED2);
}
}
}