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.
117 lines
2.2 KiB
117 lines
2.2 KiB
/*
|
|
* File: isr.h
|
|
* Author: Sparky
|
|
*
|
|
* Created on ??????????, 2013, ??? 20, 2:17
|
|
*/
|
|
|
|
#ifndef ISR_H
|
|
#define ISR_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <xc.h>
|
|
#include <GenericTypeDefs.h>
|
|
#include "typedefs.h"
|
|
#include "mcu.h"
|
|
|
|
//constants for output current on TC measurement
|
|
#define TC_CURRENT 10
|
|
#define TC_RCOMP ((UINT8)(19.6*TC_CURRENT)) //compensation = (TC_COMP*RHEATER*TCGAIN)/65536
|
|
|
|
typedef struct {
|
|
int HeaterOn;
|
|
unsigned int VRT;
|
|
unsigned int VID;
|
|
unsigned int VTEMP[4];
|
|
unsigned int VIN;
|
|
}ADCDataS;
|
|
|
|
typedef struct {
|
|
SUINT16 CurrentA;
|
|
SUINT16 CurrentB;
|
|
SUINT16 Gain;
|
|
SUINT16 Offset;
|
|
}I2CDataS;
|
|
|
|
typedef struct {
|
|
int Vin;
|
|
int Iin;
|
|
} ADCAutoDataS ;
|
|
|
|
#ifndef _ISR_C
|
|
#define ISRC_EXTERN extern
|
|
#else
|
|
#define ISRC_EXTERN
|
|
#endif
|
|
|
|
ISRC_EXTERN void IsrHigh(int src);
|
|
|
|
ISRC_EXTERN volatile int ISRStep;
|
|
ISRC_EXTERN volatile int ISRTicks;
|
|
|
|
ISRC_EXTERN volatile int ISRStopped;
|
|
|
|
ISRC_EXTERN volatile ADCDataS ADCData;
|
|
ISRC_EXTERN volatile UINT32 VBuff[256];
|
|
ISRC_EXTERN volatile UINT32 IBuff[256];
|
|
ISRC_EXTERN volatile unsigned int VIBuffCnt;
|
|
ISRC_EXTERN volatile ADCAutoDataS ADCAutoData[256];
|
|
|
|
ISRC_EXTERN UINT32 OffDelayOff;
|
|
|
|
ISRC_EXTERN volatile UINT32 CompLowTime;
|
|
|
|
ISRC_EXTERN volatile I2CDataS I2CData;
|
|
|
|
ISRC_EXTERN volatile UINT8 PHEATER;
|
|
|
|
ISRC_EXTERN volatile int ADCStep;
|
|
|
|
ISRC_EXTERN volatile int KeepOff;
|
|
|
|
ISRC_EXTERN volatile unsigned char NoHeater;
|
|
ISRC_EXTERN volatile unsigned char NoSensor;
|
|
ISRC_EXTERN volatile unsigned char ShortCircuit;
|
|
|
|
ISRC_EXTERN volatile UINT16 EEPAddrR;
|
|
ISRC_EXTERN volatile UINT16 EEPAddrW;
|
|
ISRC_EXTERN volatile void * EEPDataR;
|
|
ISRC_EXTERN volatile void * EEPDataW;
|
|
ISRC_EXTERN volatile UINT16 EEPCntR;
|
|
ISRC_EXTERN volatile UINT16 EEPCntW;
|
|
|
|
ISRC_EXTERN volatile int Buff1[128];
|
|
ISRC_EXTERN volatile int Buff2[128];
|
|
|
|
enum I2C_FLAGS{
|
|
I2C_SET_CPOT=1,
|
|
I2C_SET_GAINPOT=2,
|
|
I2C_SET_OFFSET=4,
|
|
I2C_EEPWRITE = 8,
|
|
I2C_EEPREAD = 16
|
|
};
|
|
|
|
enum IntSrc{
|
|
CompH2L=1,
|
|
CompL2H=2,
|
|
DCTimer=3
|
|
};
|
|
|
|
|
|
ISRC_EXTERN volatile int I2CStep;
|
|
ISRC_EXTERN volatile unsigned char I2CIdle;
|
|
|
|
|
|
#undef ISRC_EXTERN
|
|
|
|
//#define _I2CStart {I2CStep=0;PIR1bits.SSPIF=1;}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ISR_H */
|
|
|