mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Algorithmus zur Daten Verarbeitung


Autor: blackfinman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend allerseits,

ich arbeite momentan (unfreiwillig) an ein DSP-Projekt unfreiwillig weil 
ich im Rahmen meiner Diplomarbeit was ganz anders machen sollte es war 
eine Hardware-Arbeit mit MCU vereinbart worden leider mein Betreuer hat 
es sich nach 3 Monaten anders überlegt, in dem ein DSP- Board (blackfin 
bf537) MCU ablöst.
in dieser nervenberaubende Arbeit taste ich ein analoges Signal ab 
mittels eine von mir entworfene ADC platine, diese ist an die 
Parallinterface des Boardes angeschlossen. Die digitalisierten Werte 
werden verabeitet und über SPI ausgegeben und genau da habe ich grosse 
schwierigkeiten weil große Totezeiten da sind. ich habe einfach zum 
testen ein Sin-Signal eingespeist leider ist dieses nicht continuirlich.
Mein Algorithmus läuft so ab :
while(1){
          Daten vom DAC lesen;
          //Daten verarbeiten;
          Daten auf SPI schreiben;
        }
1-wie ist es eigentlich bei AVRs werden die Daten zyklich gepuffert 
(Ringspeicher)?? und dann vom Puffer geholt oder wird das anders gemacht

2- wie werden sie dann verarbeitet mich interssiert vor allem, was 
während der Verbeitung geschieht, ob es gleichzeitig vom ADC gelesen 
wird ??

3. ich vermute tote Zeiten kann man nie verhindern, solange man ein 
einprozessorsystem hat aber man kann sie kein hallten. wie könnte man 
das realisieren ???

4-müssen Interrupts eingesetzt werden und wozu ??

ich denke die Ablaufsfoge bzw. die Vorgehensweise soll ähnlich sein wie 
auf DSP und bitte euch sehr um Hilfe, in dem ihr mir diese Schritte 
näher erläutert.

Ich mache das zum aller ersten mal im Leben und  habe da noch meine 
Schwierigkeiten.
Es wäre auch sehr hilfreich wenn ihr mir paar Codebeisspiele habt.

vielen dank

Autor: Zip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1) Falls man die Werte direkt verarbeiten kann, weshalb sollte man die 
denn Ringpuffern ?

2)Was bedeutet verarbeiten ? FFT? Summieren? Filtern ?

3)Die Verzoegerung sollte fuer den Prozess klein genug sein. Meist 
sollte mit den Daten auch noch was angestellt werden. Dies Alles 
innerhalb eines Zyklus. Sonnst kann man nicht mehr kontinuierlich 
arbeiten.

4)Was bringt der einsatz von Interrupts. Darus ergibt sich deren 
Anwendungen.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ blackfinman

Zunächst ist ein DSP einem MCU sehr ähnlich, wo ist das Problem?
Klingt eigentlich nach ner sehr schönen Aufgabe.

>in dieser nervenberaubende Arbeit taste ich ein analoges Signal ab
>mittels eine von mir entworfene ADC platine, diese ist an die

Das ist eine Standardanwendung für DSPs.

>schwierigkeiten weil große Totezeiten da sind. ich habe einfach zum
>testen ein Sin-Signal eingespeist leider ist dieses nicht continuirlich.

Du machst einen grundlegenden Fehler.

>Mein Algorithmus läuft so ab :
>while(1){
>          Daten vom DAC lesen;
>          //Daten verarbeiten;
>          Daten auf SPI schreiben;
>        }

Der ADC muss kontinuierlich laufen und seine Daten per DMA oder 
Interrupt zur Verfügung stellen. Dann ist die Datenerfassung 
kontinuierlich und äquidistant.

>1-wie ist es eigentlich bei AVRs werden die Daten zyklich gepuffert
>(Ringspeicher)?? und dann vom Puffer geholt oder wird das anders gemacht

Der ADC beim AVR generiert für jeden Messwert einen Interrupt. Dort kann 
dann der ADC-Wert in einen Ringpuffer geschrieben werden. Eine zweite 
Routine ausserhalb des Interrupts übernimmt dann den Datentransport via 
SPI.

>3. ich vermute tote Zeiten kann man nie verhindern, solange man ein
>einprozessorsystem hat aber man kann sie kein hallten. wie könnte man
>das realisieren ???

Siehe oben.

>4-müssen Interrupts eingesetzt werden und wozu ??

Ja. Siehe oben.

>Ich mache das zum aller ersten mal im Leben und  habe da noch meine
>Schwierigkeiten.

Die hatten und haben wir alle. Nicht nur beim ersten Mal . . . ;-)

Mfg
Falk

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.