Wert übertragen aus void() funktion in C
Hallo zusammen,
mein problem ist, dass ich einen wert aus einer void() funktion brauche.
ich habe 2 eigenständige programme. das eine liest die daten eines messgerätes aus, und gibt sie digital am bildschirm wieder.
das andere programm erstellt eine excel tabelle in der dieser gemessene bzw angezeigte wert auf knopfdruck gespeichert werden soll.
Bisher habe ich die beiden programme zu einem programm gemacht. heisst ich habe nurnoch 1 main () womit beide programme gestartet werden und einwandfrei laufen.
nur schaffe ich es nicht dem excel programm den gemessenen wert des ausleseprogrammes zu übergeben.
grund dafür ist glaube ich die void () funktion in einer anderen mess.c (das ausleseprogramm beststeht aus 7 .c dateien, aber nur in einer ist die main() ) steht.
hier ist die funktion die meinen gesuchten wert (value1) bestimmt:
void ContinuousMeasurement ()
{
(....)
while (stopMeasurements == OFF) // continue loop until stop measurements is encountered
{
value1 = 0;
value2 = 0;
status = 0;
ProcessSystemEvents ();
if (measureChannel[CHANNEL1] == TRUE)
{
udts380_read_data (s380Id, 1, &value1, &status); /*<------ den wert value1 aus dieser zeile brauche ich */
if(displayMode == 0)
{
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_READING1, value1);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_NORM1, OFF);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_PREV1, OFF);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_OVL1, OFF);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_UNDEF1, OFF);
switch(status)
{
case 1:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_OVL1, ON);
break;
case 2:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_PREV1, ON);
break;
case 3:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_NORM1, ON);
break;
case 4:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_UNDEF1, ON);
break;
}
udts380_read_status (s380Id, 1, &channel, &mode, &wavelength, &autoManual, &gain);
getMode(mode, modeDescription);
getGain(gain, autoManual, gainDescription);
Fmt(wavelengthDescription, "%s<%i[w4]", wavelength);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_MODE1, modeDescription);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_GAIN1, gainDescription);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_WAVE1, wavelengthDescription);
}
Falls mir jemand helfen kann, wie ich es schaffe den value1 wert in die main () zu bekommen wäre ich euch total dankbar
ich habe noch nicht sehr viel erfahrung mit C und kenne mich nicht so gut aus, es wäre toll wenn mir das jemand vllt ein bischen ausführlicher erklären könnte. falls nicht, bin ich trotzdem für jeden tipp dankbar!!
grüsse
Hallo zusammen,
mein problem ist, dass ich einen wert aus einer void() funktion brauche.
ich habe 2 eigenständige programme. das eine liest die daten eines messgerätes aus, und gibt sie digital am bildschirm wieder.
das andere programm erstellt eine excel tabelle in der dieser gemessene bzw angezeigte wert auf knopfdruck gespeichert werden soll.
Bisher habe ich die beiden programme zu einem programm gemacht. heisst ich habe nurnoch 1 main () womit beide programme gestartet werden und einwandfrei laufen.
nur schaffe ich es nicht dem excel programm den gemessenen wert des ausleseprogrammes zu übergeben.
grund dafür ist glaube ich die void () funktion in einer anderen mess.c (das ausleseprogramm beststeht aus 7 .c dateien, aber nur in einer ist die main() ) steht.
hier ist die funktion die meinen gesuchten wert (value1) bestimmt:
void ContinuousMeasurement ()
{
(....)
while (stopMeasurements == OFF) // continue loop until stop measurements is encountered
{
value1 = 0;
value2 = 0;
status = 0;
ProcessSystemEvents ();
if (measureChannel[CHANNEL1] == TRUE)
{
udts380_read_data (s380Id, 1, &value1, &status); /*<------ den wert value1 aus dieser zeile brauche ich */
if(displayMode == 0)
{
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_READING1, value1);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_NORM1, OFF);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_PREV1, OFF);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_OVL1, OFF);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_UNDEF1, OFF);
switch(status)
{
case 1:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_OVL1, ON);
break;
case 2:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_PREV1, ON);
break;
case 3:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_NORM1, ON);
break;
case 4:
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_UNDEF1, ON);
break;
}
udts380_read_status (s380Id, 1, &channel, &mode, &wavelength, &autoManual, &gain);
getMode(mode, modeDescription);
getGain(gain, autoManual, gainDescription);
Fmt(wavelengthDescription, "%s<%i[w4]", wavelength);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_MODE1, modeDescription);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_GAIN1, gainDescription);
SetCtrlVal(panelHandle[DIGITAL], DIGITAL_WAVE1, wavelengthDescription);
}
Falls mir jemand helfen kann, wie ich es schaffe den value1 wert in die main () zu bekommen wäre ich euch total dankbar

ich habe noch nicht sehr viel erfahrung mit C und kenne mich nicht so gut aus, es wäre toll wenn mir das jemand vllt ein bischen ausführlicher erklären könnte. falls nicht, bin ich trotzdem für jeden tipp dankbar!!

grüsse
Zuletzt bearbeitet: