Wie schreib ich ein Comparator in C Code?

OP (Firma: DSK) #713864
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
OP (Firma: DSK) #713978
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... ;-)
Gast #713990
Lesenswert?

Tipps:

1. Herunterladen des Datenblattes bei www.atmel.com
2. Lesen
3. Lesen: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Analoge_Ein-_und_Ausgabe
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.
OP (Firma: DSK) #713996
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???????
Angehängte Dateien:
#714022
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.
OP (Firma: DSK) #714041
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
#714144
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.
#714285
Lesenswert?

Was davon im Tutorial verstehst du nicht?

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

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.
#715771
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.
#715832
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren