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
Gut kleines Update: Ich weiß jetzt das ich den ADCL und den ADCH auslesen muss und aufaddieren soll. Das hab ich jetzt auch soweit drin. Jedoch liefert es mir immer noch komische Ergebnisse. Wie wandele ich jetzt das Ergebniss in eine Schwingung um, in der ich Nulldurchläufe messen kann? Und wie würdet ihr ein Stimmgerät bauen? Code würde helfen. Mit freundlichen Grüßen Michi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.