Gast
#4888927
Hallo zusammen,
ich habe heute den ganzen Tag versucht, die Fehler zu finden aber komme
leider nicht weiter. die Code läuft aber ich bekomme immer falsche
Ergebnisse.Eingangsspannung ist 1.3 V. kann jemand mir schreiben, was
das Problem ist.
meine Code :
---------------------------------------------------------------
#include "avr/interrupt.h"
volatile int ADC_ergebnisse;
volatile uint8_t AD_Flag;
int main() {
init();
Serial.begin(9600);
ADCSRA |= (1 << ADEN); // AD-Wandler aktivieren
ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Prescaler:
Teilungsfaktor auf 128 einstellen
ADMUX &= ~(1 << MUX0);
ADMUX |= (1 << REFS0); // Intern 5.05 V
ADCSRA |= (1 << ADATE); // Autotrigger einschalten
ADCSRA &= ~((1 << ADTS2) | (1 << ADTS1) | (1 << ADTS0));
ADCSRA |= (1 << ADIE) | (1 << ADSC);
sei();
while (1) {
delay(500);
Serial.print(" ADC=");
Serial.println(ADC_ergebnisse);
AD_Flag = 0;
}
}
ISR(ADC_vect) {
ADC_ergebnisse = ADC;
ADCSRA |= (1 << ADSC);
}
-----------------------------------------------------------------------
Ergebnisse:
ADC=510
ADC=1022
ADC=511
ADC=1022
ADC=1023
ADC=1023
ADC=511
ADC=1022
ADC=934
ADC=511
ADC=1022
ADC=1023
ADC=511
ADC=1023
ADC=511
ADC=511
ADC=511
ADC=511
ADC=959
ADC=1023
ADC=511
ADC=1022
ADC=991
ADC=895
ADC=959
ADC=1023
ADC=1023
ADC=415
ADC=511
ADC=511
ADC=958
ADC=511
ADC=1023