We are interested in the following question : Can the structures defined in fm10Gen.h (or some other *.c *.h files with defined as FLOAT variables) create single precision instead of double in the filter calculations?
typedef struct FM_OP_IN{
UINT32 opSwitchE; /* Epics Switch Control Register; 28/32 bits used*/
UINT32 opSwitchP; /* PIII Switch Control Register; 28/32 bits used*/
UINT32 rset; /* reset switches */
float offset; /* signal offset */
float outgain; /* module gain */
float limiter; /* used to limit the filter output to +/- limit val */
int rmpcmp[FILTERS]; /* ramp counts: ramps on a filter for type 2 output*/
/* comparison limit: compare limit for type 3 output*/
/* not used for type 1 output filter */
int timeout[FILTERS]; /* used to timeout wait in type 3 output filter */
int cnt[FILTERS]; /* used to keep track of up and down cnt of rmpcmp */
/* should be initialized to zero */
float gain_ramp_time; /* gain change ramping time in seconds */
} FM_OP_IN;
|