www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hystere-routine mit Psoc -µC


Autor: Stefan Weber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute


Vielleicht hat jemand schon mit dem Psoc-µC  gearbeitet.
Ich Bin ein neuling in der Entwickung mit Psoc und habe dazu paar 
fragen.

ich versuche ein Signal am Ausgang des µC abhängig von dem am Eingang 
eingelegte Spannung(mit Poti) zu steuern. Die gemessene Analog spannung 
wird intern mit eiem ADC umgewandelt.
Am Anfang wird der startwert(Ini_wert) ermittelt und gespeichert. Danach 
erfolgt in einer Endlossschleife weitere Messungen(Mess_wert).
Die Differenz aus Mess_wert und Ini_wert wird gebildet. Nach 
überschreiten einem Schwellewert schaltet  sich der Ausgang (Hier als 
Beispiel LED). Der LED bleibt an bis der untere Schwellewert  nicht 
überschritten wird ansonsten aus.

ich möchte also ein Code implementieren(in C) zur steuerung diese LED.

In welche Form wird er ADC-ergebnis zurückgegeben (dezi, hexa, 
binär...)?


Kann mir Jemand helfen mit einem Beispielcode in C für ein Psoch?.
Der ADC ist ein Delta sigma umsetzer.

Ich bin für jede Hilfe sehr Dankbar.

Lg
Sebastian

Autor: A. B. (funky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau doch mal in die datasheets der einzelnen usermodule.
da sind beispielcodes dabei wie man den jeweiligen ADC/DAC anspricht.

die hysterese sind dann nur noch paar if abfragen

Autor: Stefan Weber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja danke

ist schon gemacht , aber ich weiß nicht genau in welcher format(hex oder 
bin oder dezi) das Ergebnis zurückgegeben wird,  sodass ich in der 
If-Anweisung vergleichen kann.

Anbei habe ich code abschnitt zum Lesen des Startwerts(readADstart) und 
die Messwerts(readAD).
Der startwert resultiert aus der Mittelung aus 255 Messungen.

Danke für weitere Imputs.

Autor: Tobias Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
heeeeeee   Leute
wieso keiner ist bereit dieser Junge zu helfen.

ich kenne mich nicht so gut mit Psoc , sonst ich hätte dich geholfen 
Sebastian.

lg

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>ich kenne mich nicht so gut mit Psoc , sonst ich hätte dich geholfen
>Sebastian.

Ich auch nicht.

> aber ich weiß nicht genau in welcher format(hex oder
>bin oder dezi) das Ergebnis zurückgegeben wird, ....

Wenn du den ADC meinst, bei einem 12Bit-ADC kommt ein Wert zwischen 0 
und 4095 zurück. Wie du den schreibst ist egal.

MfG Spess

Autor: Sebastian weber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Spess

ich versuvche mit diesem ERkenntniss schon mal vorran zu kommen

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir erschließt sich die Logik deines Programms nicht recht. Du summierst 
in 'ergb' auf und gleichzeitig teilst du 'ergb' durch 'counter' in einer 
Integeroperation?

Soll das den Mittelwert über 255 Werte darstellen?

Was geht denn nicht, wenn du den Code ausführen läßt?

Wo ist der Code für die Ansteuerung der LED?

In den Beispielen bei PSoC gibt es auch noch den Hysterese-Komparator 
als extra Modul implementiert. Vielleicht ist das eher was für dich.


Und wieso heißt du oben Stefan und unten Sebastian? Nur mal so als 
Frage.


Gruß -
Abdul

Autor: Tach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst du nicht dein Code ein bisschen mehr kommentieren... würde es 
vereinfachen

Autor: Stefan weber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Endschuldigung für den vornamen,

mein Bruder war mal kurz hier Online , und ich habe vergessen 
zurückzustellen.


ok.  ist das nicht die Mittelung über diese 255 Messungen ?   oder habe 
ich da was falsch gemacht.
ich addiere auf 0, 255 mal den Messwert und dann teile ich das 
endergebnis durch 255. Meiner Meinung nach ist sinnvoll um den 
gemittelte Wert zu haben,  oder sehe ich es flach !!!!!


Danke
Stefan

Autor: Stefan weber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist der kommentierte Code angehängt

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal so als Beispiel:
Am Anfang ist ergb=0, dann liest du den ADC und der liefert dir maximal 
4095. ergb und ADC werden addiert zu ergb. Dann teilst du ergb durch 
counter und der ist da 255. Bereits bei deiner ersten Messung kann der 
Wert also nicht größer 2^12/2^8 werden. Aus deinem 12Bit Wandler wird 
also ein 8Bit Wandler!

Ich vermute, du willst ein Tiefpaßfilter in Software realisieren. Das 
ist einfacher in Hardware als RC-Glied zu machen, außer deine 
Meßabstände ergäben unrealistisch große Werte für R und C. Nebenher 
erschlägst du damit auch gleich mögliche Transienten im Eingangssignal, 
die der ADC fehlerhaft übersetzen könnte, denn der hat auch ne 
Grenzfrequenz! Stichwort Aliasing.

Die ganze Sache hat aber mit der Hysterese und der Ansteuerung der LED 
nix zu tun!

Trenne beide Codeabschnitte und setze für den zweiten Teil (Komparator) 
fiktive Werte über Variablenzuweisung und teste den zweiten Teil dann 
komplett getrennt.


So wie sich das Problem darstellt, hat es auch mit PSoC ansich nichts zu 
tun. Ist ein reines C-Problem.


Gruß -
Abdul

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.