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.
 
 
 
 
 
 

178 lines
5.3 KiB

/*
* File: PIC32MX.h
* Author: Sparky
*
* Created on ???????, 2013, ??? 30, 1:56
*/
#ifndef PIC32MX534F064H_H
#define PIC32MX534F064H_H
#ifdef __cplusplus
extern "C" {
#endif
#include <xc.h>
#include <GenericTypeDefs.h>
#include <peripheral/timer.h>
#include <peripheral/adc10.h>
#include <peripheral/cmp.h>
#include <peripheral/i2c.h>
#include <peripheral/spi.h>
#include <peripheral/dma.h>
#ifdef _PIC32MX534F064H_C
#define P32_EXTERN
#else
#define P32_EXTERN extern
#endif
#define SYS_FREQ (80000000UL)
#define CORETIMER_FREQ (SYS_FREQ/2UL)
#define PER_FREQ (SYS_FREQ/2UL)
#define I2C_CLOCK_FREQ (400000UL)
P32_EXTERN void DelayTicks(UINT32 a);
#define _delay_us(a) DelayTicks(a*(CORETIMER_FREQ/1000000UL))
#define _delay_ms(a) DelayTicks(a*(CORETIMER_FREQ/1000UL))
P32_EXTERN unsigned int mcuSqrt(unsigned int);
//outputs
#define HEATER LATEbits.LATE6
#define HCH LATEbits.LATE7
#define CBANDA LATEbits.LATE2
#define CBANDB LATFbits.LATF3
#define CHSEL1 LATEbits.LATE5
#define CHSEL2 LATEbits.LATE4
#define CHPOL LATEbits.LATE3
#define OLED_VDD LATCbits.LATD11
#define OLED_VCC LATCbits.LATC14
#define OLED_RES LATDbits.LATD7
#define OLED_DC LATDbits.LATD6
#define OLED_CS LATDbits.LATD4
#define OLED_SCK LATDbits.LATD1
#define OLED_SDI LATDbits.LATD2
#define OLED_SDO LATDbits.LATD3
#define ID_OUT LATBbits.LATB15
//inputs
#define B1 PORTDbits.RD8
#define B2 PORTDbits.RD9
#define B3 PORTDbits.RD10
#define ID_IN PORTBbits.RB15
#define NAP PORTGbits.RG9
#define ID_3S TRISBbits.TRISB15
#define SPEAKER OC1CONbits.ON
#define SPKON if(!SPEAKER)SPEAKER=1
#define SPKOFF if(SPEAKER)SPEAKER=0
#define SDISDO_IO {TRISDSET=0b100;TRISDCLR=0b1000;}
#define SDISDO_OI {TRISDCLR=0b100;TRISDSET=0b1000;}
#define SDISDO_OO {TRISDCLR=0b1100;}
#define SDI_IN PORTDbits.RD2
#define SDI_OUT LATDbits.LATD2
#define SDO_IN PORTDbits.RD3
#define SDO_OUT LATDbits.LATD3
//I2C devices
#define CPOT 0b01011110
#define GAINPOT 0b01011100
#define OFFADC 0b11000000
#define EEP 0b10100000
#define SDA PORTGbits.RG7
#define SDAOUT TRISGbits.TRISG7
#define SDALAT LATGbits.LATG7
#define SCL TRISGbits.TRISG8
#define SCLLAT LATGbits.LATG8
#define mcuReset() Reset();
P32_EXTERN void mcuInit1();
P32_EXTERN void mcuInit2();
P32_EXTERN void mcuJumpToBootLoader();
#define mcuDisableInterrupts() INTDisableInterrupts()
#define mcuEnableInterrupts() INTEnableInterrupts()
#define mcuRestoreInterrupts(a) INTRestoreInterrupts(a)
P32_EXTERN void mcuI2CReset();
#define COMPREF CVRCONbits.CVR
#define MAINS CM2CONbits.COUT
P32_EXTERN void mcuDCTimerReset();
P32_EXTERN void mcuInitISRTimer();
P32_EXTERN void mcuStopISRTimer();
P32_EXTERN void mcuStartISRTimer(unsigned int per);
#define mcuStartISRTimer_us(us) mcuStartISRTimer((us*(PER_FREQ/1000000))/256);
//DMA
#define mcuVBuffPos() DmaChnGetDstPnt(DMA_CHANNEL0)
#define mcuIBuffPos() DmaChnGetDstPnt(DMA_CHANNEL1)
//ADC channels
#define ADCH_RT ADC_CH0_POS_SAMPLEA_AN14
#define ADCH_ID ADC_CH0_POS_SAMPLEA_AN15
#define ADCH_TEMP ADC_CH0_POS_SAMPLEA_AN5
#define ADCH_VIN ADC_CH0_POS_SAMPLEA_AN3
#define ADCH_VIN_SCAN SKIP_SCAN_AN3
#define ADCH_VSHUNT ADC_CH0_POS_SAMPLEA_AN4
#define ADCH_VSHUNT_SCAN SKIP_SCAN_AN4
#define mcuADCRefVdd() AD1CON2bits.VCFG=0b010
#define mcuADCRefVref() AD1CON2bits.VCFG=0b011
P32_EXTERN volatile int mcuADCRES;
P32_EXTERN void mcuADCStop();
P32_EXTERN void mcuADCStartManual();
P32_EXTERN void mcuADCRead(int ADCCH, int num);
P32_EXTERN int mcuADCReadWait(int ADCCH, int num);
#define mcuSPIOpen() SpiChnOpen(SPI_CHANNEL3,SPI_OPEN_MSTEN | SPI_OPEN_MODE8 | SPI_OPEN_CKP_HIGH, 4)
#define mcuSPIClose() SpiChnClose(SPI_CHANNEL3)
#define mcuSPISendByte(b) SpiChnPutC(SPI_CHANNEL3, b)
#define mcuSPISendBytes(b,n) SpiChnPutS(SPI_CHANNEL3,b,n)
#define mcuSPIIsBusy() SpiChnIsBusy(SPI_CHANNEL3)
P32_EXTERN void mcuSPIWait();
#define mcuI2CStart() {int i=INTDisableInterrupts(); I2CStart(I2C4); INTRestoreInterrupts(i); }
#define mcuI2CStop() {int i=INTDisableInterrupts(); I2CStop(I2C4); INTRestoreInterrupts(i); }
#define mcuI2CSendByte(b) {int i=INTDisableInterrupts(); I2CSendByte(I2C4,b); INTRestoreInterrupts(i); }
#define mcuI2CReceiverEnable() I2CReceiverEnable(I2C4, TRUE);
#define mcuI2CReceiverDisable() I2CReceiverEnable(I2C4, FALSE);
#define mcuI2CGetByte() I2CGetByte(I2C4);
#define mcuI2CSendAddrW(b) mcuI2CSendByte(b)
#define mcuI2CSendAddrR(b) mcuI2CSendByte(b | 1)
#define mcuI2CIsACK() I2CByteWasAcknowledged(I2C4)
#define mcuI2CACK() I2CAcknowledgeByte(I2C4, TRUE);
#define mcuI2CWakeUp() INTSetFlag(INT_I2C4)
#define mcuPIDWakeUp() INTSetFlag(INT_OC2)
#define mcuCompDisable() (mCMP2IntEnable(0), MAINS = MAINS, mCMP2ClearIntFlag() ) //, CM2CONCLR=CMP_ENABLE)
#define mcuCompEnableH2L() (MAINS = MAINS, mCMP2ClearIntFlag(), CM2CONCLR = 3 << _CM1CON_EVPOL0_POSITION, CM2CONSET = 2 << _CM1CON_EVPOL0_POSITION, mCMP2IntEnable(1))
#define mcuCompEnableL2H() (MAINS = MAINS, mCMP2ClearIntFlag(), CM2CONCLR = 3 << _CM1CON_EVPOL0_POSITION, CM2CONSET = 1 << _CM1CON_EVPOL0_POSITION, mCMP2IntEnable(1))
#define mcuIDIn()
#define mcuIDOut()
//USB Stack definitions
#define self_power 1
#define USB_BUS_SENSE 1
#undef P32_EXTERN
#ifdef __cplusplus
}
#endif
#endif /* PIC32MX_H */