Gast
#1562351
Guten Tag,
ich verzweifle noch. Ich soll ein kleines projekt schreiben mit dem
STK500, habe mich da für ein Stimmgerät entschieden.
Jetzt ist das Board soweit vorbereitet, aber der ADC liefert nur
komische Ergebnisse.
Mein Ziel ist es eine Schwingung zu erhalten, bei der ich die
Nulldurchgänge zählen kann. Also auf die Frequenzen kommen kann.
Anschluss ist PortA Pin 1 und 2
Mein Code:
void init_adc()
{
//ADC, 8-Bit im Single Conversion Modus
//Externe Referenzspannung
ADMUX = (0<<REFS1) | (0<<REFS0) | (1<<ADLAR);
ADMUX |= (1<<MUX4) | (0<<MUX3) |(0<<MUX2)| (0<<MUX1)| (0<<MUX0);
//Frquenzteilungsfaktor: 128
ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
//Interrupt aktivieren
ADCSRA |= (1<<ADIE);
//Erlauben/aktivieren die Konvertierung
ADCSRA |= (1<<ADEN);
}
int read_adc()
{
//unsigned char result;
int result;
//Starten die Konvertierung
ADCSRA |= (1<<ADSC);
//Warten bis das ADIF Bit gesetzt ist,
//also die Konvertierung erledigt ist.
while( (ADCSRA & (1<<ADIF))==0 );
//Ergebnis auslesen
result = ADCH;
//Interrupt Flag löschen
ADCSRA &= ~(1<<ADIF);
return result;
}
2te Frage: Wie schließe ich da, mit welchen Abtastzyklen er abtastet?
Wie errechne ich das? Weil ich muss wissen wieviel er in 1sec liefert?
Ich danke für eure Hilfe