#define F_CPU 1000000UL
#include <avr/io.h>
volatile uint8_t adcvalue;
int main(void)
{
DDRA =0x00;
DDRC = 0xff;
// enable adc
ADCSRA |= (1<<ADEN);
// using division factor 8
ADCSRA |= (1<<ADPS0) | (1<<ADPS1);
// enable 8 bit conversion
ADMUX |= (1<<ADLAR);
// take input from PA0
ADMUX |= (1<<MUX0);
while (1)
{
// Start conversion
ADCSRA |= (1<<ADSC);
// wait until conversion is done
while (ADCSRA & (1<<ADSC));
// save result to adcvalue
adcvalue = ADCH;
// show result on 8 leds connected to PORT C
PORTC = adcvalue;
}
return 0;
}
Le code ci-dessus prend la valeur analogique de PA0 (avec potentiomètre) et montrer la valeur numérique sur 8 connecté au port leds C. Quand je Simuler le circuit sur Proteus les diodes électroluminescentes sont toujours même quand Je change la valeur du potentiomètre et il y a un message disant "[AVR AD CONVERTER] Valeur de référence = 0".ATmega16 ADC code ne fonctionne pas
Appréciez si vous pouvez m'aider à savoir ce qui ne va pas.
Quelle est votre tension de référence? Quelle est la valeur du Poti? Quelle valeur attendez-vous? Avez-vous mesuré la tension à PA0? Est-il inférieur à votre tension de référence? S'il vous plaît, faites un effort et conservez au moins quelques informations de base. –