wie bekomme ich die Temperatur aufs LCD?

OP #2834119
Lesenswert?

Hallo alle,

Ich bin noch ein Anfänger hier und habe folgendes Problem.
Die 2 Dateien die ich angehängt habe funktionieren beide Problemlos für 
sich, nur das die Temperaturanzeige im Serial Monitor erfolgt und nicht 
auf dem LCD. Wie kann ich es anstellen, das beide Dateien zusammen 
funktionieren in einen Programm und die Anzeige der Temperaturen auf den 
LCD erfolgt?
Und wenn möglich auch noch die unterschiedlichen Sensoren für sich?
Das DEMO Programm im LCD Programm kann dabei aussen vor bleiben dies ist 
nur zum Test gedacht.

Danke im voraus Sly1
Angehängte Dateien:
#2834132
Lesenswert?

Maik Sly schrieb:

> auf dem LCD. Wie kann ich es anstellen, das beide Dateien zusammen
> funktionieren in einen Programm

Trenn dich von der Vorstellung, dass du 2 existierende Programme zu 
einem einzigen zusammenmischen kannst.

Prinzipiell schreibst du ein neues Programm.
Für dieses neue Programm kannst du Ideen und Techniken aus beiden 
Programmen verwenden bzw. Einzelteile weiterverwenden. Aber mit der 
Vorstellung: Ich hab 2 funktionierende Programme und irgendwie 
verheirate ich jetzt die beiden, damit fällst du mit absoluter 
Sicherheit auf die Schnauze.

Also:
Sieh dir an, wie in dem einen Code die Temperatur gemessen wird. Sieh 
dir im anderen Programm an, wie dort Ausgaben (auch Zahlenausgaben) auf 
das LCD durchgeführt werden. Und dann schreib ein neues Programm, 
welches die beiden Techniken kombiniert.

> Ich bin noch ein Anfänger
Macht nichts. Das nennt sich eben "Programmieren lernen". Programmieren 
ist mehr, viel mehr, als nur vorgefertigte Einzelteile zu benutzen ohne 
sie zu verstehen.
Wenn du Bilder-Maler werden willst, musst du malen! In vorgefertigen 
Zeichnungen, vorgefertigte Flächen anhand einer Nummer mit 
vorgefertigter Farbe ausfüllen hat nichts mit dem zu tun, was einen 
Künstler ausmacht. Als Lernender studierst du vielleicht die Technik und 
Bildkomposition anderer großer Meister. Aber deine eigenen Bilder malst 
du selber!

Und genau in demselben Sinne studiert man auch Programme anderer um sich 
Techiken und Vorgehensweisen abzusehen und daraus zu lernen. Aber seine 
Programme schreibt man dann selber.

Und ja. Das ist ein Lernprozess, der seine Zeit dauert. Gestern noch am 
Fliessband, heute bereits Industrieprogrammierer - das spielt es nun mal 
nicht. Die Ausbildungs- und Lernzeit für Programmierer bemisst sich in 
Jahren/Monaten und nicht in Tagen.
OP #2834152
Lesenswert?

Danke, das habe ich schon probiert.
Mein problem ist, beim LCD Programm gibt es Funktionen und ein main 
Programm.
Wenn ich das Temperatur Programm in eine Funktion packe weis ich nicht 
wie ich die Übergabe der werte machen soll. Es kommt immer zu 
Fehlermeldungen wie z.B. "invalid conversion from 'const char*' to 
'unsigned char' " oder ähnliches.
Ich brauche halt einen ansatz wie ich das Temperatur mit ins LCD 
Programm einbauen kann.

Danke dir trotzdem.
#2834163
Lesenswert?

Maik Sly schrieb:
> Danke, das habe ich schon probiert.
> Mein problem ist, beim LCD Programm gibt es Funktionen und ein main
> Programm.
> Wenn ich das Temperatur Programm in eine Funktion packe weis ich nicht
> wie ich die Übergabe der werte machen soll. Es kommt immer zu
> Fehlermeldungen wie z.B. "invalid conversion from 'const char*' to
> 'unsigned char' " oder ähnliches.

Tja.
Eines der wesentlichen Dinge lautet nun mal: Du musst deine 
Programmiersprache lernen. Keiner kann das von Geburt an, wir alle 
mussten da durch.

Wenn dich das überfordert, dann ist das ein sicheres Zeichen dafür, dass 
du Schritte übersprungen hast und noch nicht so weit bist.
Also: eine einfachere Aufgabe suchen, in deinen Lernunterlagen ein paar 
Kapitel zurückgehen.
#2834171
Lesenswert?

> Wenn dich das überfordert, dann ist das ein sicheres Zeichen dafür,
> dass du Schritte übersprungen hast und noch nicht so weit bist.

Wie ich da drauf komme?

Die Demo-Programme, die du dir da zusammengesucht hast, sind so einfach 
zu verstehen, dass es einfacher schon fast nicht mehr geht. Wenn du da 
Schwierigkeiten hast, dann ist es ein sicheres Zeichen dafür, dass du 
sie noch nicht einmal studiert hast und durchgesehen bzw. mit ihnen 
'gespielt' hast, was dir diese Demos zeigen bzw. beibringen wollen.

Schnapp dir zb das LCD-Demo und specke es ab, so dass du nur eine 
einzige Zahl ausgeben kannst, die in einer Variablen vorliegt. Alles 
andere, was dazu nicht notwendig ist fliegt raus.
Gast #2834178
Lesenswert?

>// Demoprogramm
>  while(1) {

hier machst Du 20 bis dreißig Leerzeilen und fängst dann an Teile aus 
dem Hauptprogramm des Temperatur Messprogramms einzufügen.

>    // Zeichenkettenausgaben
>    printf_lcd(0,0,"LCD DIP204 KS0073",1);

Die hier benötigten Funktionen kommen oben davor.


und dann Schritt für Schritt erweitern.
Gast #2834618
Lesenswert?

Karl Heinz Buchegger schrieb:
> Tja.
> Eines der wesentlichen Dinge lautet nun mal: Du musst deine
> Programmiersprache lernen.

Tja (ebenfalls).

Das Erlernen irgendeiner Programmiesprache ist nicht der erste, sondern 
der zweite oder gar dritte Schritt. Der allererste Schritt besteht 
darin, die prinzipielle Funktionsweise einer Hardware zu verstehen, die 
Befehle ausführen und ein Programm abarbeiten kann. Der nächste Schritt 
ist das Verstehen von grundlegenden Bestandteilen einer jeden 
Programmiersprache: Vereinbarungen, Variablen, Programmcode. Danach 
kommt die Zuwendung zu irgendeiner Programmiersprache.

Ich befürchte, unser junger Held steht noch vor dem allerersten 
Schritt.

W.S.
OP #2835248
Lesenswert?

Danke ihr habt mir sehr :-( geholfen.

Ich habe ein staatlich abgeschlossenes Studium als Programmierer. Ich 
habe nur leider nicht die Zeit und wollte mir es einfacher machen und 
schauen ob mir einer auf die schnelle helfen kann. Aber ich sehe schon 
das hier nur lauder klug ... sind die mir sagen wollen, lerne 
Programmieren. (Danke das kann ich schon.)  Also stehe ich nicht am 
anfang, sondern bin auf mich selbst gestellt.

Danke euch trotzdem.
#2835271
Lesenswert?

Maik Sly schrieb:
> Danke ihr habt mir sehr :-( geholfen.
>
> Ich habe ein staatlich abgeschlossenes Studium als Programmierer.

Erzähl deinen Schmäh woanders

Selbst wenn du kein abgeschlossenes Studium hast, ist es trivial in 
beiden Programmen die jeweiligen main() zu studieren und eine neues zu 
schreiben, in dem beide zusammengeführt werden. Wenn ich das in 20 
Sekunden kann, dann wirst du das in ein paar Stunden ja wohl hinkriegen 
mit deinem abgeschlossenem Studium
#2835303
Lesenswert?

> Ich bin noch ein Anfänger hier und habe folgendes Problem.

> Ich habe ein staatlich abgeschlossenes Studium als Programmierer.

Ah ja.


Allerdings frage ich mich schon, was das für ominöses Studium sein soll. 
Obwohl, heutzutage mit den neuen Bachelor Dinges kann ich mir vorstellen 
dass eine Wald und Wiesen Hochschule aufm Dorf einfach mal schnell nen 
entsprechenden Studiengang "staatl. gerpf. Programmierer" anbietet. 
Nicht ärgern nur wundern.

gruß cyblord
Gast #2835803
Lesenswert?

Man muß einfach nur das EVA-Prinzip der Datenverarbeitung beherzigen. 
Eingabe, Verarbeitung, Ausgabe. Anfangs mit Tasks und nicht 
zeitsynchronen Vorgängen auf realen µC tat ich mir damit schwer, heute 
geht es. ;-)
Gast #2835829
Lesenswert?

Maik Sly schrieb:
> Ich habe ein staatlich abgeschlossenes Studium als Programmierer.

Fordere doch die Studiengebühren wegen Erfolglosigkeit zurück und 
beauftrage einen 10-jährigen Hobbyprogrammierer mit deinen Problemen.
Die machen das für 5€ und so machst du noch Gewinn.
Gast #2835833
Lesenswert?

Das ist garnicht so selten... In meinem TU-Jahrgang haben viele Kollegen 
2er-4er auf Programmieren, konnten aber nur exakt die 3 Programme, die 
im Labor abgeprüft wurden auswendig (bzw. fallweise auch mit 
Schummelzetteln).

Der Hammer war aber jemand, der in der letzten Laborübung das gesamte 
Programm bereits abgeschrieben hatte, aber dann nicht in der Lage war, 
die abgeschriebenen Funktionen in der main() in einem Menü aufzurufen 
weil sie diesmal bisschen anders geheissen haben ;)

Und ja, ich musste einem Kollegen auch bei einer Digitaltechnik-Klausur 
diese Assemblerbefehle per SMS schicken...
MOV A, B
RRC
JC IS_ODD
JP IS_EVEN

Soviel zu angehenden staatlich geprüften/diplomierten Programmiereren, 
Programmier-Akademikern,  usw...

@Maik:
Was du mal machst: Du nimmst den Code vom LCD-Display. Hier sehe ich, 
dass du bereits sprintf drinnen hast (man sollte sprintf auf 8-Bittern 
vermeiden wenn es geht). sprintf schreibt Zahlen, Strings, Character, 
... auf eine bestimmte, formatierte Weise in einen String.      Dann 
gibst du deine Temperaturdaten in einen solchen String und gibst diesen 
an die LCD-Ausgabefunktion, welche den String ans Display schickt.

Habe es jetzt nicht getestet, und keine Lust zu denken wie-was-wo-wann, 
aber eventuell hilft dir das weiter:   http://pastebin.com/0hQGEViS

Fehler können natürlich drin sein, aber du weisst jetzt ungefährt, was 
du tun sollst...

Wenn du das geschafft hast, schnapp dir ein C-Buch und lerne die Basics 
(&, *, Pointer, ...) ordentlich, denn wenn's einmal keinen fertigen 
Source gibt, was dann?  Oder gar noch schlimmer: Keine Library, sondern 
nur das Datenblatt. Auch das ist manchmal der Fall.
#2836244
Lesenswert?

Hehe, ich habe in der Ausbildung auch S7 proigrammieren "gelernt" und 
war -in der Ausbildung- recht gut darin.
Aber beim ersten RICHTIGEN Programm wo ich nen Fehler suchen sollte, 
hätte man genau so gut die Putzfrau hinstellen können.
Ein Zettel wo draufsteht "Ich kann" sagt garnichts, obwohl die meisten 
Firmen nichts anderes mehr sehen/hören wollen.

Beim Studium solltest du ja schon das eine oder andere gelernt haben. 
Also setz dich mal einen Nachmittag hin und gehe das AVR-GCC Tutorial 
durch. Damit habe ich von fast Null C für MCs gelernt. Ganz hilfreich 
für die Basics war auch noch das C-Tutorial von rn-wissen.

Also, nimms den Leuten nicht übel, aber von Programmieren in C hast du 
anscheinend recht wenig Ahnung ;)

Noch als Tip: Ich würde beide Programme soweit stripen und ändern, bis 
ich ihre mains einfach in eine Funktion umbenennen und als Source und 
Header zu meinem Projekt hinzufügen kann.
In meiner Main wird dann einfach alles so aufgerufen, wie ich's 
brauche^^

Gruss Stefan

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