18.01.2013 Aufrufe

Wechselwirkungen sehr langsamer hochgeladener Ionen mit einer ...

Wechselwirkungen sehr langsamer hochgeladener Ionen mit einer ...

Wechselwirkungen sehr langsamer hochgeladener Ionen mit einer ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

160 C. AUGER-Meßprogrammcode<br />

}<br />

_dos_gettime (&t);<br />

printf ("Ende der Messung um %02d.%02d:%02d Uhr.\n\n", t.hour, t.minute, t.second);<br />

err = DIOWrite (SLOTISA_0, ONBOARD, PORT_0, !10);<br />

ErrorRoutine ("Error while writing to DIO port 0 on 1st board", err);<br />

err = DIOWrite (SLOTISA_0, ONBOARD, PORT_1, !0);<br />

ErrorRoutine ("Error while writing to DIO port 1 on 1st board", err);<br />

/***************************************************************/<br />

/******************* FILE: config.c ****************************/<br />

/***************************************************************/<br />

/* makros concerning the counters */<br />

#define INVERT_CLOCK 1<br />

#define INVERT_GATE 1<br />

#define INVERT_OUTPUT 1<br />

#define DIVIDER_LATCH_ON 1<br />

#define EXTERNAL_CLOCK 1<br />

#define DUMMY 0<br />

/* makros concerning the digital I/O */<br />

#define HANDSHAKE 1 /* for ’ON’ no ’READBit()’ possible on port */<br />

#define OUTPUT 0<br />

#define INITIAL_ZERO 0<br />

/* makros concerning the burstgenerator */<br />

#define BURSTPERIOD_1 800 /* in multiples of 125ns, minimum 3, must >= pulseperiod*pulsesperburst */<br />

#define PULSEPERIOD_1 5 /* in multiples of 125ns, minimum 3 */<br />

#define PULSES_PER_BURST_1 3 /* minimum value */<br />

#define BURSTPERIOD_2 9000 /* in multiples of 125ns, minimum 3, must >= pulseperiod*pulsesperburst */<br />

#define PULSEPERIOD_2 3 /* in multiples of 125ns, minimum 3 */<br />

#define PULSES_PER_BURST_2 3 /* minimum value */<br />

int<br />

set_counter (unsigned long *vdcg_pulsewidth, int clock)<br />

{<br />

int err;<br />

unsigned long data = DUMMY; /* only valid for divider and VDCG modes */<br />

/* VDCG on 1st board (32 Bit), used as gate for CTRE, */<br />

printf ("Setting VDCG to external/internal clock usage\n");<br />

if (err = CTRSetOptions (SLOTISA_1, ONBOARD, CHANNEL_0, !INVERT_OUTPUT, !INVERT_CLOCK, !INVERT_GATE, DUMMY, clock))<br />

return err;<br />

printf ("Setting VDCG on 1st board\n");<br />

if (err = CTRConfigure (SLOTISA_1, ONBOARD, CHANNEL_0, vdcg_pulsewidth, VDCG_MODE))<br />

return err;<br />

/* CTRE on 2nd board (32 Bit), event counting mode , signals from CLAM-analyser */<br />

printf ("Setting CTRE options\n");<br />

if (err = CTRSetOptions (SLOTISA_0, ONBOARD, CHANNEL_0, !INVERT_OUTPUT, !INVERT_CLOCK, !INVERT_GATE, DUMMY, DUMMY))<br />

return err;<br />

printf ("Setting CTRE on 2nd board to 32 bit signal measurement\n");<br />

if (err = CTRConfigure (SLOTISA_0, ONBOARD, CHANNEL_0, &data, LCTR_MODE))<br />

return err;<br />

return 0;<br />

}<br />

int<br />

set_bg (void)<br />

{<br />

int err;<br />

int pulsesperburst_1 = PULSES_PER_BURST_1;<br />

int pulsesperburst_2 = PULSES_PER_BURST_2;<br />

/* BG in single shot mode, initially disabled by ’BGConfigure()’ call */

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!