Zum Inhalt springen

Facharbeit, Progammieren eines Temperatursensors


Empfohlene Beiträge

Hallo

Für die Facharbeit zum Abschluss meiner 2 jährigen BFS Technischer Assistent für Informatik habe ich als Thema bekommen, einen Temperatursensor zusammenzubasteln, diesen per parallele schnittstelle an Rechner anzuschließen und mit einem c++ programm die daten auszulesen.

eine anleitung habe ich hier gefunden

LM75 Temperatursensor an der parallelen Schnittstelle

nur steht hier was von

Für die ersten Versuche sollte der PC mit reinem DOS laufen, um Einflüsse von Windows auszuschließen. Wenn Windows 9x läuft, klicken wir Start - Beenden... - Im MS-DOS-Modus neu starten. Dann starten wir LM75-I2C.EXE. Erst wenn alles fehlerfrei läuft, können wir es im DOS-Fenster probieren. Mit WinNT, Win2000, WinXP und Linux geht es garnicht, weil keine Portzugriffe zugelassen werden. Hier hilft eine DOS-Bootdisk

joa ich hab keine ahnung was die "LM75-I2C.EXE" fürne Datei sein soll, und läuft das dinge jetzt allgemein nicht über winxp? oder betrifft es nur dieses Programmm?

Ist es überhaupt möglich das so zusammenzubasteln und dann Daten mit c++ auszulesen? :confused:

also nochma kurz, ist es "einfach" möglich mit der hardware sachen auzulesen?!

ich hoffe ich habe mich hier verständlich genug ausgedrückt,

grüße, theschaaf :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na ich würde mal sagen das diese Exe bei dem beschriebenen Sensor mitgeliefert wird. Da du das aber selber programmieren willst ist die doch eh uninteressant für dich (außer vielleicht zu testzwecken).

Die Sache mit DOS ist die das du da direkt auf den Port (oder auf jedwede andere Hardware) zugreifen kannst. Unter einem modernem Betriebssystem geht das nicht mehr sondern das Betriebssystem stellt dir dazu Funktionen zur Verfügung über die du das machen musst.

Interessant für dich wären dazu unter anderem CreateFile, ReadFile, WriteFile, SetCommMask, SetCommTimeouts und WaitCommEvent.

Link zu diesem Kommentar
Auf anderen Seiten teilen

heisst also ich kann mir die komponenten bestellen, zusammenlöten, und dann unter winxp anfangen mit c++ zu programmieren?

achja nochne kleine frage, ich mag diesen hardwareteil ganz und garnicht, ich hoffe ich kann die meiste zeit mit dem schreiben eines programms verbringen? kann ja eigentlich nich so schwer sein das zusammenzulöten oda?

auf dem gebiet hab ich leider keine ahnung.

grüße, theschaaf

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hatte ursprünglich was anderes vor, diese müsste ich allerdings bei nem anderen fachlehrer machen, mit dem ich gar nich dicke bin.

deshalb hat mein programmierlehrer gefragt ob ich das bei ihm machen möchte, klar wollte ich das, das ging dann umne homepage

http://forum.fachinformatiker.de/referate/102116-facharbeit-log-bereich-anmeldeforumlar.html

da nachzulesen, allerdings hatte er dann am ende doch nich genug ahnung davon und nu sitz ich damit, naja.

also programmieren kann ich wohl, nur der hardware teil liegt mir nicht so, und ich möchte erstmal nur wissen ob diese hardware jetzt mit winxp und c++ harmoniert?! :hells:

dann kann ich ja auch anfangen aber was nützt mir es wenn da am ende eh nichts geht?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich möchte erstmal nur wissen ob diese hardware jetzt mit winxp und c++ harmoniert?! :hells:

:confused: Das steht doch da:

Mit WinNT, Win2000, WinXP und Linux geht es garnicht, weil keine Portzugriffe zugelassen werden. Hier hilft eine DOS-Bootdisk

Was diese .Exe-Datei angeht, das ist eine kompilierte Version des dort häufiger erwähnten QuickBasic-Quellcodes. Deine Aufgabe wäre dann wohl, die Logik dieses Quellcodes in C++ umzusetzen.

Übrigens: In der Zip-Datei, die du auf dieser Seite runterladen kannst, ist die Exe mit drin ;) .

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Wochen später...

halloa

also ich stecke grade etwas inner klemme, ich hab getrödelt, hatte dann noch nen studio termin mit meiner band in der letzten woche und steh jetzt da und hab nur noch eine woche zeit.

jetzt ists passiert, die ein pin meines controllers ist abgebrochen, ich hatte einen auf reserve damit wollte ich heute anfangen aber wieder ist ein pin abgebrochen, ich habe gestern schon zwei neue zur sicherheit bestellt, allerdings sind die wohl erst dienstag da und abgabetermin ist freitag.

ich hab auch keine ahnung wie ich jetzt anfangen soll, kann ich schon anfangen zu programmieren? auch ohne einem angeschlossenen gerät?

kann mir vll jemand nen tipp geben, also sozusagen der ersten schritt den ich machen muss?

wäre wirklich nett, und für die die es mir gleich eh sagen werden, ich weis das ich ein trottel bin und schon viel früher hätte anfangen sollen.

grüße, jens

Link zu diesem Kommentar
Auf anderen Seiten teilen

halloa

also ich stecke grade etwas inner klemme, ich hab getrödelt, hatte dann noch nen studio termin mit meiner band in der letzten woche und steh jetzt da und hab nur noch eine woche zeit.

jetzt ists passiert, die ein pin meines controllers ist abgebrochen, ich hatte einen auf reserve damit wollte ich heute anfangen aber wieder ist ein pin abgebrochen, ich habe gestern schon zwei neue zur sicherheit bestellt, allerdings sind die wohl erst dienstag da und abgabetermin ist freitag.

ich hab auch keine ahnung wie ich jetzt anfangen soll, kann ich schon anfangen zu programmieren? auch ohne einem angeschlossenen gerät?

kann mir vll jemand nen tipp geben, also sozusagen der ersten schritt den ich machen muss?

wäre wirklich nett, und für die die es mir gleich eh sagen werden, ich weis das ich ein trottel bin und schon viel früher hätte anfangen sollen.

grüße, jens

Ich glaub, ich hab da was überlesen.

Was meinst du denn für einen "Controller"?? Micro- doch nicht, oder?

Mit dem PC-Programm kannst du doch schon anfangen:

Mach dir ne Klasse namens "IO_Layer", der gibst du ne Methode GetTemperaturValue().

Und darauf baust du dein Programm auf. Also die Ausgabe, Kalibrierung, Linearisierung und was du noch so brauchst.

Wenn dein Controller - oder was auch immer - dann da ist, musst du nur noch in der obigen Methode die Verbindung zur Hardware herstellen.

Eine Simulationsschicht OHNE Nutzung der Hardware macht sich eigentlich immer gut.

In der GetTemperaturValue-Methode gibst du dann einen konstanten Wert zurück, oder noch besser generierst du mit nem Zufallsgenerator irgendeine Zahl, oder noch besser du lässt deinen Rückgabewert bei jedem Aufruf ein wenig ansteigen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Noch einen Kommentar dazu:

Stell dir die Kommunikation aber bitte nicht soo einfach vor.

Da ist nix, von wegen GetTemperaturFromLPTPort() :D

...

Du musst hier rein softwaremäßig das I2C-Protokoll implementieren.

Setz dich hier mal mit den Grundlagen auseinander, falls du die noch nicht weißt.

Die Verpinnung müsstest du ja aus deinem Link entnehmen können.

Mein Tipp zu deiner Vorgehensweise:

1. Klasse "CTemp" anlegen, mit enthaltener Methode "GetTemp()" wie oben schonmal beschrieben

2. Deine Ausgabe (GUI oder Konsole) erzeugen

3. Klasse "CI2C_Communication" anlegen, in welcher du die Basisbefehle zur I2C-Kommunikation implementierst.

4. Klasse "CLM75" anlegen, wo du auf die I2C-Klasse zugreifst, und den Kommunikationsablauf mit dem Sensor abwickelst

Link zu diesem Kommentar
Auf anderen Seiten teilen

es fehlt mir vorne und hinten an wissen, bin grad irgendwie kurz vor nem nervenzusammenbruch...

also ich muss erstmal eben bei ich glaub unter 0 kurz anfangen.

ein beispiel wie ich mir das vorstelle.

#include <string>

class kunde

{

std::string Passwort;

public:

inline void passwort_eingeben(void);

};

diese klasse speicher ich unter kunde.h ab und in meiner projektdatei füge ich die zeile #include "kunde.h" ein.

ist das so richtig? wir haben damit in der schule noch nie gearbeitet?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ein beispiel wie ich mir das vorstelle.

#include <string>

class kunde

{

std::string Passwort;

public:

inline void passwort_eingeben(void);

};

diese klasse speicher ich unter kunde.h ab und in meiner projektdatei füge ich die zeile #include "kunde.h" ein.

ist das so richtig? wir haben damit in der schule noch nie gearbeitet?

Genau, ... also in einer Headerdatei sind oder sollten ja nur Sachen fürs Klassengerüst stehen.

Also irgendwelche Variablen, MethodenRÜMPFE und so weiter.

Dann musst du in deinem Code noch irgendwie dem Methodenrumpf einer Methode der Headerdatei etwas zuweisen.

Also nochmal:

Headerdatei Kunde.h anlegen.

Dortrein das Klassengerüst packen.

Codedatei Kunde.cpp anlegen.

Darein die Methoden der Klasse implementieren.

In dein Hauptprogramm (angenommen main.cpp) schreibst du include "kunde.h".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke du wirst besser kommen wenn du mal deine bisherigen Ergebnisse hier zu Diskussion stellst. Denn dein letzter Link sieht zwar schön aus hast du dir aber mal die dort verlinkte i2c.h Datei angeschaut. Ich bin zwar kein Assembler Experte (i2c.h sieht mir sehr Stark nach Assembler aus) nur schiebst du da fleißig im Speicher hin und her. Wenn du so was noch nie gemacht hast dann ist das für ein Abschlussprojekt aber sicherlich eine Nummer zu groß. Wende dich doch mal an deinen Fachlehrer und stecke dein Thema noch mal genauer ab lass dir von ihm auch mal was helfen. Denn einen Ansteuerung von einer externen Komponente fällt ja nicht einfach mal so vom Himmel.

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke,

GoBlack - Digitaltechnik und Modelle

ist dieses ein programm für meine Aufgabe?? Dann könnte ich mich daran orientieren

Hm... nee, nicht so richtig.

Eher dann die eingebundene Headerdatei "i2c.h".

Allerdings ist die prozessorspezifisch und in Assembler geschrieben.

Weiß ja nicht, ob du das lesen kannst.

Ansonsten gabs auf deinem ersten Link ganz unten einen Code, wo einer das in c# umgesetzt hat.

Das hilft glaube mehr...

Link zu diesem Kommentar
Auf anderen Seiten teilen

mein lehrer hat mir was ganz neues erzählt, ich soll die schaltung erklären "nur" erklären, und kann auch ein beispielprogramm nutzen, soll da allerdings noch einige zusätzliche funktionen einbauen, ich kann auch ein programm in c nutzen.

da nehm ich natürlich am besten das programm in c von dieser seite (KALOW.DE - LM75, Thermometer, Temperatur-Sensor) allerdings habe ich dieses mit mit dem bloodsheed compilter getestet und es kommen wohl um die 200 fehlermeldungen von denen ich keine ahnung hab.

http://www.kalow.de/lm75/LM75.cs

ich werde da jetzt erstmal mit rumprobieren

Link zu diesem Kommentar
Auf anderen Seiten teilen

mein lehrer hat mir was ganz neues erzählt, ich soll die schaltung erklären "nur" erklären, und kann auch ein beispielprogramm nutzen, soll da allerdings noch einige zusätzliche funktionen einbauen, ich kann auch ein programm in c nutzen.http://www.kalow.de/lm75/LM75.cs

ich werde da jetzt erstmal mit rumprobieren

Irgendwie hab ich den Eindruck, dass bei euch keiner so recht weiß, was zu machen ist?

Wieso gibts denn keine konkrete Aufgabenstellung?

der Quellcode in deinem Link, also der namens .cs ist aber weder c noch c++, das weißt du wohl, oder?

Die Schaltung erklären, ist einfacher als alles andere. Da würde ich mir den Ärger mit dem Programm ersparen.

Lies dir nen Wiki zum I2C-Bus durch.

Die Schaltung besteht doch nur aus:

- 4 Drähte

- zwei Widerstände

- Temperatursensor LM75

- Parallele Schnittstelle

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi, also so langsam läufts einiegermaßen, ich habe die dokumentation des hardwareteils fertig.

jetzt möchte ich mit diesem programm weiterarbeite

GoBlack - Digitaltechnik und Modelle

allerdings tauchen beim kompilieren in der headerdatei immer 3 fehler auf, und zwar:

asm{ mov AH, 80h <--- [c++warning]restarting compile using assembly

int 0AAh }

}

----------------------------------------------------------

char i2c_receive (char slave, char far* c, char lastchar) <--- [c++error] expected

----------------------------------------------------------

asm{ mov AH, 83h

mov AL, slave

and AL, 0FEh <--- [++error] incorrect number format

mov CX, length

les BX, buffer

int 0AAh

----------------------------------------------------------

oder ist dieses programm gar nich für meine schaltung geeignet? aber es müsste doch eigentlich das richtige sein oda?!

grüße, jens

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...