mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Analog-Digital-Converter STK500 Problem


Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.