#ifndef _HEATER
#define _HEATER

#include "types.h"
#define H_SUM_LIMIT	1000


typedef struct
{
	uint16	dwell;		//secs?
	int16 	targetT;	//in hudredths of deg C
	uint16	errHoldoff;	//ticks before starting to check temp
	int16	minT,maxT;	//acceptable temp band
}thermalProgramStep;

typedef struct
{
	thermalProgramStep tProgram;
	int16PID 	heating,cooling;
	int16		currentTemperature,thermoCouple;	//maybe calculated temp including adjustment
	uint16		elapsedTime;
	int32		heaterSlope_num;
	int32		heaterSlope_den;
	int16		heaterPWM,coolerPWM;
	int16		tempSense1,tempSense2;
	int32		fixedPWM;
	int32 		sum;	 		//sum of error for integral term
	char 		clHeatFlag;		
}Heater;

void HeaterServoLoop(int16 setPoint, char clHeatFlag, Heater* h);
void initHeater(Heater* h);
void calculateSlope(Heater* h,int16 setPoint);

#endif