Daten von einem externen Gerät abfangen (Labjack)
-
Hallo
Wir machen derzeit in der Schule
die Programmiersprache C.
Bis jetzt kam ich sehr gut zurecht
doch nun haben wir eine Aufgabe gekriegt
wo wir ein Messwerterfassungssystem schreiben sollen!
Ich war an dem Tag leider nicht da und hab
es erstmal so versucht
doch leider weiß ich nicht genau wie ich die
Headerdatei die er uns beigelegt hat und eine obj. Datei soll eingebunden
werden als Modul(der code ist wohl noch zu komplex für uns)
ist eingebunden doch ich weiß nicht so recht wie ich die aufrufen/nutzen soll :p
edit: nutze Pelles C als IDE
-----
Das Programm soll starten und direkt das Menü (was als Modul geschrieben ist)
aufrufen. Hier hat man die Auswahl
Auswahl1: Anzahl der Messwerte festlegen
Auswahl2: Messung durchführen und anzeigen
Auswahl3: Mittelwert berechnen
Auswahl4: Programm beendenHier erstmal die Main Datei
#include <stdio.h> #include <conio.h> #include "menue.h" #include "Sensor.h" int main(int argc, char *argv[]) { int menueauswahl,AnzahlMesswerte,i,analogsensors; float MesswertSumme, Messwert,Mittelwert; do { menueauswahl = menue(); switch(menueauswahl) { case 1: _clrscr(); printf("\nGeben Sie die Anzahl der Messwerte ein: "); scanf("%i",&AnzahlMesswerte); printf("Ihre gewollte Anzahl der Messwerte ist %i",AnzahlMesswerte); _getch(); break; case 2: analogsensors = AnalogSensor(); for(i=1;i<AnzahlMesswerte;i++) printf("Messwert %i: %f",i,Messwert); MesswertSumme = MesswertSumme+Messwert; _getch(); break; case 3: printf("Das Ergebnis des arithmetischen Mittelwerts lautet:"); printf("\n\nMesswertsumme: %f / Messwertanzahl: %i = Mittelwert: %f ",MesswertSumme,AnzahlMesswerte,Mittelwert); _getch(); break; default: printf("Error"); _getch(); break; } }while(menueauswahl!=4); return 0; }
Hier die Menü Datei
#include <stdio.h> #include <conio.h> #include "menue.h" int menu() { int menueauswahl; printf("**********************************************"); printf("\n---------- Maische fuer Bier&Co -------------"); printf("\n**********************************************"); printf("\n\n1. Anzahl der Messwerte eingeben?"); printf("\n2. Messung durchfuehren und anzeigen?"); printf("\n3. Mittelwert berechnen und ausgeben?"); printf("\n4. Programm beenden?"); printf("\n\nBitte einen Menuepunkt wählen (1-4): "); scanf("%i",&menueauswahl); return menueauswahl; }
und hier die Analog Sensor Datei!
/* File : sensor.h Autor : Datum : 19.09.05 letzte Aenderung: 19.09.05 Version : 0.1 */ /* Funktionsdefinitionen zur Headerdatei sensor.h. Zugriff auf einen Analog-Kanal, des USB-Multifunktions-Messdaten-Erfassungssystems(12-Bit-ADU) */ #ifndef __SENSOR_H #define __SENSOR_H /******************************************* * Funktion: AnalogSensor * ******************************************* * * * Beschreibung: Liefert den Messwert * * eines Analogkanals des * * Messwerterfassungssystems * * LabJack U12 * * * ******************************************* * * * Bibliothek : ljackuw.lib * * Autor : * * Datum : 19.05.05 * * letzte Aenderung: 19.05.05 * * Funktionsname : AnalogSensor * * Version : 0.1 * * * ******************************************* * * * Uebergabeparameter: * * * * long channel: Gibt die Nummer des * * Analogkanals AI0-7 * * (0-7) des LabJack U12 an. * * * ******************************************* * * * Rueckgabeparameter: * * * * float SensorAnalog: Gibt einen Analog- * * wert (Temperatur) * * zwischen 0-99 °C * * zurueck. * *******************************************/ float AnalogSensor(long channel); /* Prototyp des Sensors */ #endif
So ich hoffe das ist alles was ihr braucht um mir zu helfen
Der Fehler (oder das eigentliche Problem was hoffentlich nur das eine ist)
liegt im case2: weil ich nicht weiß wie ich die Messwerte abrufe/abfange ..
Wird wohl über den Channel long gehen ... :pLiebe Grüße!
Wenn sonst euch irgendwelche Programmierfehler o.ä. auffallen wäre
ich auch für die dankbar
-
Du kriegst im Moment einen Compiler-Error, weil du den Parameter (long Channel) nicht abgibst. Du musst also herausfinden, welcher Wert da der richtige ist und diesen der Funktion übergeben...
-
und wie finde ich den raus ? wo muss ich den angeben?
ist der case 2 überhaut richtig ? so der aufruf ?
-
Shumuu schrieb:
und wie finde ich den raus ?
Dein Gerät hat offenbar 8 Kanäle, von denen du Daten einlesen kannst. Auf welchem Kanal letztlich die Daten sind, die du willst, kann ich dir nicht sagen. Ich kenne das Gerät schließlich nicht. Da könnte ich nur raten (0? 5? alle?). Vermutlich hast du irgendeinen Sensor an einen der Kanäle gepackt (?). Der wäre dann der richtige. Frag deinen Lehrer oder einen Schulkameraden.
Shumuu schrieb:
wo muss ich den angeben?
Beim Aufruf der Funktion AnalogSensor.
Shumuu schrieb:
ist der case 2 überhaut richtig ? so der aufruf ?
Nein. Die Funktion erwartet einen Parameter (long channel), du übergibst aber keinen. Das passt nicht.