158 C. AUGER-Meßprogrammcode } } } sprintf (string, "Letzter Schleifendurchlauf (Nr.%d)", reps); break; case ’+’: reps += 1; sprintf (string, "Neue Anzahl der Durchläufe: %d -> %d", reps - 1, reps); break; case ’-’: reps -= 1; sprintf (string, "Neue Anzahl der Durchläufe: %d -> %d", reps + 1, reps); break; case ’x’: reps = rep; sprintf (string, "!!! Sofortiger Schleifenabbruch !!!"); intermed = point; break; } outtextxy (rtextx, rtexty, string); moveto (xpix (x, min, max), ypix (counts / (float) rep, cmaxx)); setcolor (color); if (key == ’x’) break; /* leaving ’for’-loop */ point++; /* array index */ do { /* waiting until gate gets active */ err = DIOReadBit (SLOTISA_1, ONBOARD, PORT_1, 0, &gate); ErrorRoutine ("Error reading DIO for gate active !!!", err); } while (gate == CLOSED); if (key == ’x’) /* if key ’x’ has been struck */ break; sprintf (filename, "c:\\designer.23\\@daten\\%02d%02d_m%02d.dta", d.da_mon, d.da_day, num); file = fopen (filename, "w+"); if (file == NULL) { printf ("Error opening file!\n\n"); exit (0); } fprintf (file, "# Titel: %s\n", title); fprintf (file, "# Spektrum vom %02d.%02d.%04d um %02d:%02d.%02d Uhr\n", d.da_day, d.da_mon, d.da_year, t.hour, t.minute, t.second); fprintf (file, "# Minimum: %4.2lf Maximum: %4.2lf Step: %4.2lf\n", min, max, step); fprintf (file, "# Messungen pro Kanal: %d\n", reps); fprintf (file, "# Silizium-Wafer\n"); fprintf (file, "# Strahl-Energie: %.2fkeV\n", egun); if (clock == 1) fprintf (file, "# CLOCK: external\n"); else fprintf (file, "# CLOCK: internal 8MHz\n"); fprintf (file, "# VDCG_LOW: %ld\t\tVDCG_HIGH: %ld\n", vdcg_pulsewidth[0], vdcg_pulsewidth[1]); if (outbits[0] == 0) fprintf (file, "# CRR-Mode: %d / 1 \n\n", crr[value - 1]); else fprintf (file, "# CAE-Mode: HV = %deV\n", cae[value - 1]); fprintf (file, "\n# Experimentelle Randbedingungen:\n\n"); fprintf (file, "# Einfallswinkel (Strahl-Kristalloberfläche): %3.2f o \n", angle); fprintf (file, "# Targetstrom: %sA\n", current); fprintf (file, "# Normierung: %s\n", norm); fprintf (file, "# Druck: %smbar\n", pressure); fprintf (file, "# %s\n\n", comment); if (key != ’x’) { runs = (double) reps; for (i = NUM_DUMMY_RUNS; i
mean = ctre[i] / runs; sigma = sqrt (square[i] / runs - pow (mean, 2.0)); fprintf (file, "%4.2f\t%8.4lf\t%8.4lf\n", energy[i], mean, sigma); } } else { for (i = NUM_DUMMY_RUNS; i