mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie schreib ich ein Comparator in C Code?


Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi, hab ein problem ein comparator für unser programm zu scheiben. wir 
benutzen den 
Atmega2561(http://www.shop.display3000.com/pi12/pi2/pd43.html)
und habe´n keine ahnung wie man ein solches programm schreibt da dies 
totales neuland für uns ist.
zu unserer aufagbe: wir solln jeweils zwei spannungen mit dem 
mikrocontroller vergleichen,
1. 2,5V SOLL zustand --> IST wert größer als SOLL --> Ausgang von 0 auf 
1
2. 3,5V SOLL zustand --> IST wert größer als SOLL --> Ausgang von 0 auf 
1
dann gibt es noch ein kleines problem der controller hat nur einen 
comperator auf PortE.2 positiv input und PortE.3 negative input, wir 
brauchen aber zwei. also wenn irgendjemand einen tip für uns hat, wir 
wären sehr dankbar. MFG Schmiddy

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das is ja nur ne if abfrage...

Autor: Mike R. (thesealion)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem der AD-Kanäle, oder halt 2. Dann kannst du die 
Komperatoren beliebig in Software schreiben.

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja sowas hab ich mir auch schon gedacht aber wie schreibt man einen 
comparator???
 ich hab noch keinen vernünftigen ansatzt gefunden der auch 
funktioniert...

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat nicht jemand mal ein beispielprogramm in c code wie ein comparatar 
geschrieben ist?????

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist simpelstes C, Vergleichen zweier Werte:


float ist;
float soll = 2.5;


ist = (irgendwie bestimmen);

if (ist > soll)
  Ausgang = 1;
else
  Ausgang = 0;


Möchtest Du vielleicht Deine Frage anders formulieren?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wiederhole endlos {

     Lese ADCWert ein

     if ADCWert > Schwelle
       Schalte Led ein
     else
       Schalte Led aus
  }

Autor: Komperatorschreiber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
if (Istwert > Sollwert) {
 Port = 1;
}

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das ist ja einleuchtend nur haben wir leider absolut keine ahnung wie 
wir die Ports da einbinden so dass das Programm die auch erkennt, es 
muss ja was mit den spannungen anfangen können die wir da anlegen.
Leider haben wir auch keine Unterlagen oder Beispielprogramme dazu, 
deswegen fragen wir... ;-)

Autor: Marvin M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tipps:

1. Herunterladen des Datenblattes bei www.atmel.com
2. Lesen
3. Lesen: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
4. In der Doku eures Boards nachschauen, an welchen Anschlüssen die 
analogen Eingänge herausgeführt werden.

Auch sinnvoll wäre vielleicht ein einfacheres Projekt? Wenn man keine 
Ahnung hat, macht es mehr Spaß, bei den Grundlagen anzufangen und nicht 
mittendrin.

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich erkläre euch mal kurz was wir vor haben....
also wir bekommen eine spannung von 0-50Volt die wir auf 1:10 mit 
widerständen begrenzt haben, also 0-5Volt für den microkontroller. bei 
einer spannung die ca. 1min über 2,5Volt liegt soll ein transistor 
angesteuert werden der eine steuerplatiene einschaltet, bei einer 
spannung von über 40Volt soll ein transistor angesteuert werden der 
lastwiderständer zum überlastschutz zuschaltet.
 wie schreibt man nun das pasende programm dazu???????

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry wir meinen natürlich nicht direkt 40 volt sonder eine spannung von 
über 4V da der controller ja nur 5V verpackt ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Schmidt wrote:
>  wie schreibt man nun das pasende programm dazu???????

Genauso wie das oben in mehreren Variationen ausgeführt wurde.

Es wird euch wohl nichts anderes übrig bleiben, als
ins kalte Wasser zu springen und mal mit den Grundlagen
anzufangen.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das ist schon richtig leider haben wir da aber keine zeit mehr zu...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Schmidt wrote:
> ja das ist schon richtig leider haben wir da aber keine zeit mehr zu...

Was erwartet ihr?

Das euch hier jemand das Programm schreibt?

Sicher nicht. Dazu gibt es das Tutorial. Dort sind Code-
sequenzen drinnen, die eigentlich ausreichen sollten, so daß
jemand der noch nie sowas programmiert hat, das in 1 bis 2
Stunden hinkriegt.
Soviel Zeit werdet ihr ja wohl haben. Ist ja schliesslich
keine Raketentechnik.

Wenn ihr konkrete Probleme und Schwierigkeiten im
Verständnis oder bei einem Codeausschnitt habt: Gerne.
Es gibt mindestens 10 Leute hier im Forum, die sofort
Gewehr bei Fuss stehen und weiterhelfen.
Aber von 0 beginnend: Nein.

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein so sollte das eigentlich auch nicht rüber kommen. aber ich glaube 
auch nicht das einer der keine ahnung von dem hier hat dieses programm 
für unsern kontroller in zwei std. zu schreiben. wir haben schon ne 
woche dran gesessen um überhaupt etwas auf dem display zu schreiben. 
allerdings hatten wir da ein paar schwierigkeiten mit der Font anbindung 
und ettlichen anderen kleinen probleme...naja jetzt gehts ja und wenn 
wir das mit dem komparator noch hinkriegen sind wir fertig

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Font? Display? Nah, egal...

Wenn ich euch richtig verstehe, ist alles, was ihr wissen müsst, wie man 
eine AD-Wandlung vornimmt (also wert vom analogport einlesen) und wie 
man einen Portpin high/low schaltet.

Beides ist hier im Tutorial zu finden. Zumindest für AVRs.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niels Hüsken wrote:
> Font? Display? Nah, egal...

<Nicht für den OP gedacht>
Das Übliche.
Wir verbringen erst mal Stunden damit, irgendwelche Anzeigen
zu programmieren, so dass alles erst mal gut aussieht und
dann kümmern wir uns darum, dass das Pgm auch was Vernünftiges
macht. Mist: Wir haben soviel Zeit damit verbraucht mit der
Anzeige rumzuspielen, daß für die eigentliche Aufgabe keine
Zeit mehr bleibt. Bzw. Jetzt habe ich soviel Zeit in meine
Anzeigeroutinen gesteckt und ihr sagt mir jetzt, daß ich
die alle über Bord schmeißen kann, weil man das alles ganz
anders macht?

Findest du in comp.lang.c++ jeden Tag zu Dutzenden.

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja ganz genau wir wollen gerne wissen wie man ein AD-Wandler vornimmt, 
mit analogwerte einlesen und wie man ein portpin high/low schaltet. wenn 
du mir das mal zeigen oder erklären könnntest wäre ich dir sehr 
dankbar.....

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was davon im Tutorial verstehst du nicht?

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Da mögen eventuell das eine oder andere Detail nicht genau
genug beschrieben sein, aber ausführlicher als dort wird es
dir hier auf die Schnelle keiner erklären können.

Und als Krönung des ganzen: Da findest sich sogar eine
fix fertige C Funktion, die du nur einbauen musst um den
ADC auslesen zu können. Aber lies um Himmels Willen die
Beschreibung. Ohne die wirst du nicht verstehen was in
der Funktion warum passiert.

Du kannst auch mal hier
http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC
nachlesen. Eventuell ergänzt das eine oder andere Detail
die Beschriebung im C Tutorial. Den Assembleranteil am Ende
der Seite kannst du ja ignorieren.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum Thema Ausgabeport setzen

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Auch hier wieder: Wenn noch Fragen offen bleiben, dann stelle
sie. Aber lies dir das erst mal durch.

Und: Du solltest mit einiger Sicherheit hiermit anfangen.
Die ADC Geschichte ist etwas umfangreicher als einen
Portpin auf 0 oder 1 zu setzen.

Autor: Mario Richter (mario001) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann man ein komplexes (wegen Font) Display ansteuern, wenn man 
nicht mal weiß, wie man einen einzelnen Port befummelt ? grübel

Autor: *test* test _login_ login (Firma: *keine* /Firma/) (testaccounta)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
what about:
while(1)PORTX.B=!(soll<ist);   //;-D 

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
jo danke leute bin schon sehr viel weiter gekommen nur jetzt hab ich das 
problem das ich den adc nich richtig auslesen kann ich bekomme keinen 
wet auf dem lcd angezeigt

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte BITTE BITTE keinen Code als Word-Dokument !

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab kein Word. Ich kann das Dokument nicht öffnen.

Autor: Christian Schmidt (Firma: DSK) (schmiddy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so hier hast du den asl txt document

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADEN taucht in deinem Quelltext garnicht auf...

Autor: Mike R. (thesealion)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Niels Hüsken wrote:
>> Font? Display? Nah, egal...
>
> <Nicht für den OP gedacht>
> Das Übliche.
> Wir verbringen erst mal Stunden damit, irgendwelche Anzeigen
> zu programmieren, so dass alles erst mal gut aussieht und

Cool, das erinnert mich an einen Studiengang bei uns an der FH. Die IGIs
Internationales Studium Gestanltung und Design.
Das wichtigste war bei denen das Aussehen, ob es funktioniert hat, war 
Ihnen ziemlich egal. Hauptsache es sah gut aus.
Und sowas darf sich inter Dipl.-Ing. E-Technik nennen.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike S. wrote:

> Und sowas darf sich inter Dipl.-Ing. E-Technik nennen.

Du glaubst garnicht, was ich schon alles gesehen hab, was sich Dipl.-Ing 
IT nennen darf. "Wie setz ich auf meiner Homepage einen Link? '<A ' und 
dann?"

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Schmidt wrote:
> so hier hast du den asl txt document


Warum nicht einfach das *.c File so einstellen, wie es
ist? Also als *.c File?

Du hast kaum Arbeit damit, die Forensoftware kann damit ein
Syntax Highlighting machen.

Darf ich fragen, warum ihr die Funktion 'ReadChannel' aus dem
Tutorial nicht einfach so übernehmt, wie sie dort angegeben
ist? Per Cut&Paste von dort holen, in den Source Code
einsetzen, Funktion aufrufen und in 40 Sekunden habt ihr
einen funktionierenden ADC.
Nun ist natürlich nichts dagegen einzuwenden, wenn man die
Funktion danach abändert und an seine Bedürfnisse anpasst.
Aber es ist schon mal beruhigend, wenn man mit einer funktionierenden
Funktion loslegen kann.

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.