You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.9 KiB
90 lines
2.9 KiB
/*
|
|
* File: iron.h
|
|
* Author: Sparky
|
|
*
|
|
* Created on ??????????, 2013, ??? 3, 13:34
|
|
*/
|
|
|
|
#ifndef IRON_H
|
|
#define IRON_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#include <GenericTypeDefs.h>
|
|
#include "typedefs.h"
|
|
|
|
typedef struct __PACKED{
|
|
union __PACKED{
|
|
unsigned int Input:3;
|
|
struct __PACKED{
|
|
unsigned int InputP:1;
|
|
unsigned int InputN:1;
|
|
unsigned int InputInv:1;
|
|
};
|
|
};
|
|
unsigned int CBandA:1;
|
|
unsigned int CurrentA:9;
|
|
unsigned int CBandB:1;
|
|
unsigned int CurrentB:9;
|
|
unsigned int Gain:9;
|
|
unsigned int Offset:10;
|
|
}t_MeasurementConfig;
|
|
|
|
typedef struct __PACKED{
|
|
UINT8 Type; //sensor type (1: TC, 2: PTC)
|
|
struct __PACKED{
|
|
unsigned int HChannel :1; //Heater Channel
|
|
union __PACKED{
|
|
unsigned int InputConfig:3;
|
|
struct __PACKED{
|
|
unsigned int InputP :1; //positive input sensor channel selection (0=GND; 1=sensor channel B)
|
|
unsigned int InputN :1; //negative input sensor channel selection (0=GND; 1=sensor channel A)
|
|
unsigned int InputInv :1; //input amplifier invert (0=not inverted (ChP on +, ChN on -), 1=inverted(ChN on +, ChP on -)
|
|
};
|
|
};
|
|
unsigned int CBandA :1; //sensor channel A current source band (0=x16, 1=x1)
|
|
unsigned int CBandB :1; //sensor channel B current source band (0=x16, 1=x1)
|
|
unsigned int stub : 2;
|
|
};
|
|
UINT16 CurrentA; //current for A sensor channel (0-256) current = CurrentA * (1.225/(1.6*256))mA
|
|
UINT16 CurrentB; //current for B sensor channel
|
|
INT16 HRCompCurrent; //heater resistance compensating current (0, currentA, currentB or currentA+currentB)
|
|
UINT16 Gain; //Amplifier gain for sensor, Gain = x*4, x=8-256
|
|
UINT16 Offset; //offset to exclude from measurement (0-1024)
|
|
float TPoly[10]; //Temperature polynomial coefficients
|
|
INT8 WSLen; //Waveshaping, 0=off, 1-8 = sample waveshaping with length 1-8, -1 = damping waveshaping
|
|
UINT8 PID_DGain; //PID differential gain (0 - 32)
|
|
UINT16 PID_KP; //PID proportional coefficient (0.1 - 0.999) * 32768
|
|
UINT16 PID_KI; //PID integral coefficient (0.1 - 0.999) * 32768
|
|
UINT16 PID_OVSGain; //Positive overshoot prevention gain (0 - 32)
|
|
UINT16 PID_PMax; //maximum rated power (watts)
|
|
UINT16 PID_PNom; //nominal power for which PID coefficients are calculated
|
|
} t_IronConfig;
|
|
|
|
typedef struct __PACKED {
|
|
UINT16 Version;
|
|
UINT16_VAL ID;
|
|
char Name[24];
|
|
t_IronConfig Config[2];
|
|
} t_IronPars;
|
|
|
|
#ifndef _IRON_C
|
|
#define IRON_H_EXTERN extern
|
|
#else
|
|
#define IRON_H_EXTERN
|
|
#endif
|
|
|
|
IRON_H_EXTERN UINT16 IronID;
|
|
IRON_H_EXTERN volatile t_IronPars IronPars;
|
|
IRON_H_EXTERN void IronInit();
|
|
IRON_H_EXTERN void IronTasks();
|
|
|
|
#undef IRON_H_EXTERN
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* IRON_H */
|
|
|