|
#ifndef _TYPEDEFS_H_
#define _TYPEDEFS_H_
typedef unsigned char UBYTE;
typedef signed char SBYTE;
typedef unsigned char UINT8;
typedef signed char SINT8;
typedef unsigned int UINT16;
typedef signed int SINT16;
typedef unsigned long UINT32;
typedef signed long SINT32;
typedef float DOUBLE24;
typedef double DOUBLE32;
// sleep
#define SLEEP_CONTINUE 0
#define SLEEP_WAKEUP 1
// macros
#define TIMER0_COUNTER_LIMIT $$TMR0_CNT_LIMIT$$
#define TIMER0_OFFSET $$TMR0_OFFSET$$
#define TIMER1_COUNTER_LIMIT $$TMR1_CNT_LIMIT$$
#define TIMER1_OFFSET $$TMR1_OFFSET$$
#define TIMER2_COUNTER_LIMIT $$TMR2_CNT_LIMIT$$
#define TIMER2_OFFSET $$TMR2_OFFSET$$
// misc
#define HIGHBYTE(x) (*(((UBYTE*)(&x))+1))
#define LOWBYTE(x) (*(((UBYTE*)(&x))))
#define TRUE 1
#define FALSE 0
#define ENABLE 1
#define DISABLE 0
#define SET 1
#define CLEAR 0
#define ON 1
#define OFF 0
#define IO_OUTPUT 0
#define IO_INPUT 1
//registers
#define REG_OPTION OPTION
#define REG_OPTION_SET(x) REG_OPTION = x
#define REG_SSPCON SSPCON
#define REG_SSPCON_SET(x) REG_SSPCON = x
#define REG_ADCON0 ADCON0
#define REG_ADCON0_SET(x) REG_ADCON0 = x
#define REG_ADCON1 ADCON1
#define REG_ADCON1_SET(x) REG_ADCON1 = x
#define REG_SPBRG SPBRG
#define REG_SPBRG_SET(x) REG_SPBRG = x
#define REG_RCSTA RCSTA
#define REG_RCSTA_SET(x) REG_RCSTA = x
#define REG_TXSTA TXSTA
#define REG_TXSTA_SET(x) REG_TXSTA = x
#define REG_TXREG TXREG
#define REG_TXREG_SET(x) REG_TXREG = x
#define REG_PR2 PR2
#define REG_PR2_SET(x) REG_PR2 = x
#define REG_T2CON T2CON
#define REG_T2CON_SET(x) REG_T2CON = x
#define REG_CCP1CON CCP1CON
#define REG_CCP1CON_SET(x) REG_CCP1CON = x
#define REG_CCP2CON CCP2CON
#define REG_CCP2CON_SET(x) REG_CCP2CON = x
#define REG_T1CON T1CON
#define REG_T1CON_SET(x) REG_T1CON = x
#define REG_T2CON T2CON
#define REG_T2CON_SET(x) REG_T2CON = x
#define REG_EEADR EEADR
#define REG_EEADR_SET(x) REG_EEADR = x
#define REG_EEDATA EEDATA
#define REG_EEDATA_SET(x) REG_EEDATA = x
#define REG_EECON2 EECON2
#define REG_EECON2_SET(x) REG_EECON2 = x
//port GPIO
#define PORT_GPIO_IO TRIS
#define PORT_GPIO_IO_SET(x) PORT_GPIO_IO = x
#define PORT_GPIO GPIO
#define PORT_GPIO_SET(x) PORT_GPIO = x
#define PORT_GPIO_0 GP0
#define PORT_GPIO_1 GP1
#define PORT_GPIO_2 GP2
#define PORT_GPIO_3 GP3
#define PORT_GPIO_4 GP4
#define PORT_GPIO_5 GP5
#define PORT_GPIO_0_SET(x) PORT_GPIO_0 = x
#define PORT_GPIO_1_SET(x) PORT_GPIO_1 = x
#define PORT_GPIO_2_SET(x) PORT_GPIO_2 = x
#define PORT_GPIO_3_SET(x) PORT_GPIO_3 = x
#define PORT_GPIO_4_SET(x) PORT_GPIO_4 = x
#define PORT_GPIO_5_SET(x) PORT_GPIO_5 = x
//port A
#define PORT_A_IO TRISA
#define PORT_A_IO_SET(x) PORT_A_IO = x
#define PORT_A PORTA
#define PORT_A_SET(x) PORT_A = x
#define PORT_A_0 RA0
#define PORT_A_1 RA1
#define PORT_A_2 RA2
#define PORT_A_3 RA3
#define PORT_A_4 RA4
#define PORT_A_5 RA5
#define PORT_A_6 RA6
#define PORT_A_7 RA7
#define PORT_A_0_SET(x) PORT_A_0 = x
#define PORT_A_1_SET(x) PORT_A_1 = x
#define PORT_A_2_SET(x) PORT_A_2 = x
#define PORT_A_3_SET(x) PORT_A_3 = x
#define PORT_A_4_SET(x) PORT_A_4 = x
#define PORT_A_5_SET(x) PORT_A_5 = x
#define PORT_A_6_SET(x) PORT_A_6 = x
#define PORT_A_7_SET(x) PORT_A_7 = x
#define PORT_A_IO_0 TRISA0
#define PORT_A_IO_1 TRISA1
#define PORT_A_IO_2 TRISA2
#define PORT_A_IO_3 TRISA3
#define PORT_A_IO_4 TRISA4
#define PORT_A_IO_5 TRISA5
#define PORT_A_IO_6 TRISA6
#define PORT_A_IO_7 TRISA7
#define PORT_A_IO_0_SET(x) PORT_A_IO_0 = x
#define PORT_A_IO_1_SET(x) PORT_A_IO_1 = x
#define PORT_A_IO_2_SET(x) PORT_A_IO_2 = x
#define PORT_A_IO_3_SET(x) PORT_A_IO_3 = x
#define PORT_A_IO_4_SET(x) PORT_A_IO_4 = x
#define PORT_A_IO_5_SET(x) PORT_A_IO_5 = x
#define PORT_A_IO_6_SET(x) PORT_A_IO_6 = x
#define PORT_A_IO_7_SET(x) PORT_A_IO_7 = x
//port B
#define PORT_B_IO TRISB
#define PORT_B_IO_SET(x) PORT_B_IO = x
#define PORT_B PORTB
#define PORT_B_SET(x) PORT_B = x
#define PORT_B_0 RB0
#define PORT_B_1 RB1
#define PORT_B_2 RB2
#define PORT_B_3 RB3
#define PORT_B_4 RB4
#define PORT_B_5 RB5
#define PORT_B_6 RB6
#define PORT_B_7 RB7
#define PORT_B_0_SET(x) PORT_B_0 = x
#define PORT_B_1_SET(x) PORT_B_1 = x
#define PORT_B_2_SET(x) PORT_B_2 = x
#define PORT_B_3_SET(x) PORT_B_3 = x
#define PORT_B_4_SET(x) PORT_B_4 = x
#define PORT_B_5_SET(x) PORT_B_5 = x
#define PORT_B_6_SET(x) PORT_B_6 = x
#define PORT_B_7_SET(x) PORT_B_7 = x
#define PORT_B_IO_0 TRISB0
#define PORT_B_IO_1 TRISB1
#define PORT_B_IO_2 TRISB2
#define PORT_B_IO_3 TRISB3
#define PORT_B_IO_4 TRISB4
#define PORT_B_IO_5 TRISB5
#define PORT_B_IO_6 TRISB6
#define PORT_B_IO_7 TRISB7
#define PORT_B_IO_0_SET(x) PORT_B_IO_0 = x
#define PORT_B_IO_1_SET(x) PORT_B_IO_1 = x
#define PORT_B_IO_2_SET(x) PORT_B_IO_2 = x
#define PORT_B_IO_3_SET(x) PORT_B_IO_3 = x
#define PORT_B_IO_4_SET(x) PORT_B_IO_4 = x
#define PORT_B_IO_5_SET(x) PORT_B_IO_5 = x
#define PORT_B_IO_6_SET(x) PORT_B_IO_6 = x
#define PORT_B_IO_7_SET(x) PORT_B_IO_7 = x
//port C
#define PORT_C_IO TRISC
#define PORT_C_IO_SET(x) PORT_C_IO = x
#define PORT_C PORTC
#define PORT_C_SET(x) PORT_C = x
#define PORT_C_0 RC0
#define PORT_C_1 RC1
#define PORT_C_2 RC2
#define PORT_C_3 RC3
#define PORT_C_4 RC4
#define PORT_C_5 RC5
#define PORT_C_6 RC6
#define PORT_C_7 RC7
#define PORT_C_0_SET(x) PORT_C_0 = x
#define PORT_C_1_SET(x) PORT_C_1 = x
#define PORT_C_2_SET(x) PORT_C_2 = x
#define PORT_C_3_SET(x) PORT_C_3 = x
#define PORT_C_4_SET(x) PORT_C_4 = x
#define PORT_C_5_SET(x) PORT_C_5 = x
#define PORT_C_6_SET(x) PORT_C_6 = x
#define PORT_C_7_SET(x) PORT_C_7 = x
#define PORT_C_IO_0 TRISC0
#define PORT_C_IO_1 TRISC1
#define PORT_C_IO_2 TRISC2
#define PORT_C_IO_3 TRISC3
#define PORT_C_IO_4 TRISC4
#define PORT_C_IO_5 TRISC5
#define PORT_C_IO_6 TRISC6
#define PORT_C_IO_7 TRISC7
#define PORT_C_IO_0_SET(x) PORT_C_IO_0 = x
#define PORT_C_IO_1_SET(x) PORT_C_IO_1 = x
#define PORT_C_IO_2_SET(x) PORT_C_IO_2 = x
#define PORT_C_IO_3_SET(x) PORT_C_IO_3 = x
#define PORT_C_IO_4_SET(x) PORT_C_IO_4 = x
#define PORT_C_IO_5_SET(x) PORT_C_IO_5 = x
#define PORT_C_IO_6_SET(x) PORT_C_IO_6 = x
#define PORT_C_IO_7_SET(x) PORT_C_IO_7 = x
//port D
#define PORT_D_IO TRISD
#define PORT_D_IO_SET(x) PORT_D_IO = x
#define PORT_D PORTD
#define PORT_D_SET(x) PORT_D = x
#define PORT_D_0 RD0
#define PORT_D_1 RD1
#define PORT_D_2 RD2
#define PORT_D_3 RD3
#define PORT_D_4 RD4
#define PORT_D_5 RD5
#define PORT_D_6 RD6
#define PORT_D_7 RD7
#define PORT_D_0_SET(x) PORT_D_0 = x
#define PORT_D_1_SET(x) PORT_D_1 = x
#define PORT_D_2_SET(x) PORT_D_2 = x
#define PORT_D_3_SET(x) PORT_D_3 = x
#define PORT_D_4_SET(x) PORT_D_4 = x
#define PORT_D_5_SET(x) PORT_D_5 = x
#define PORT_D_6_SET(x) PORT_D_6 = x
#define PORT_D_7_SET(x) PORT_D_7 = x
#define PORT_D_IO_0 TRISD0
#define PORT_D_IO_1 TRISD1
#define PORT_D_IO_2 TRISD2
#define PORT_D_IO_3 TRISD3
#define PORT_D_IO_4 TRISD4
#define PORT_D_IO_5 TRISD5
#define PORT_D_IO_6 TRISD6
#define PORT_D_IO_7 TRISD7
#define PORT_D_IO_0_SET(x) PORT_D_IO_0 = x
#define PORT_D_IO_1_SET(x) PORT_D_IO_1 = x
#define PORT_D_IO_2_SET(x) PORT_D_IO_2 = x
#define PORT_D_IO_3_SET(x) PORT_D_IO_3 = x
#define PORT_D_IO_4_SET(x) PORT_D_IO_4 = x
#define PORT_D_IO_5_SET(x) PORT_D_IO_5 = x
#define PORT_D_IO_6_SET(x) PORT_D_IO_6 = x
#define PORT_D_IO_7_SET(x) PORT_D_IO_7 = x
//port E
#define PORT_E_IO TRISE
#define PORT_E_IO_SET(x) PORT_E_IO = x
#define PORT_E PORTE
#define PORT_E_SET(x) PORT_E = x
#define PORT_E_0 RE0
#define PORT_E_1 RE1
#define PORT_E_2 RE2
#define PORT_E_3 RE3
#define PORT_E_0_SET(x) PORT_E_0 = x
#define PORT_E_1_SET(x) PORT_E_1 = x
#define PORT_E_2_SET(x) PORT_E_2 = x
#define PORT_E_3_SET(x) PORT_E_3 = x
#define PORT_E_IO_0 TRISE0
#define PORT_E_IO_1 TRISE1
#define PORT_E_IO_2 TRISE2
#define PORT_E_IO_3 TRISE3
#define PORT_E_IO_0_SET(x) PORT_E_IO_0 = x
#define PORT_E_IO_1_SET(x) PORT_E_IO_1 = x
#define PORT_E_IO_2_SET(x) PORT_E_IO_2 = x
#define PORT_E_IO_3_SET(x) PORT_E_IO_3 = x
// interrupts
#define INTERRUPT_GLOBAL GIE
#define INTERRUPT_GLOBAL_DISABLE() INTERRUPT_GLOBAL = DISABLE;
#define INTERRUPT_GLOBAL_ENABLE() INTERRUPT_GLOBAL = ENABLE;
#define INTERRUPT_PERIPHERAL PEIE
#define INTERRUPT_PERIPHERAL_ENABLE() INTERRUPT_PERIPHERAL = ENABLE
#define INTERRUPT_PERIPHERAL_DISABLE() INTERRUPT_PERIPHERAL = DISABLE
//timer0 defines
#define TIMER0 TMR0
#define TIMER0_EVENT T0IE
#define TIMER0_EVENT_FLAG T0IF
#define TIMER0_EVENT_FLAG_CLEAR() TIMER0_EVENT_FLAG = CLEAR
#define TIMER0_SET(x) TIMER0 = x
#define TIMER0_EVENT_ENABLE() TIMER0_EVENT = ENABLE
#define TIMER0_EVENT_DISABLE() TIMER0_EVENT = DISABLE
//timer1 defines
#define TIMER1 timer1_clone
#define TIMER1_CONTROL T1CON
#define TIMER1_EVENT TMR1IE
#define TIMER1_EVENT_FLAG TMR1IF
#define TIMER1_EVENT_FLAG_CLEAR() TIMER1_EVENT_FLAG = CLEAR
#define TIMER1_DISABLE() TIMER1_CONTROL &= 0xFE
#define TIMER1_ENABLE() TIMER1_CONTROL |= 0x01
#define TIMER1_SET(x) timer1_clone = x
#define TIMER1_EVENT_ENABLE() TIMER1_EVENT = ENABLE
#define TIMER1_EVENT_DISABLE() TIMER1_EVENT = DISABLE
//timer2 defines
#define TIMER2 TMR2
#define TIMER2_CONTROL T2CON
#define TIMER2_ENABLE() TIMER2_CONTROL |= 0x04
#define TIMER2_DISABLE() TIMER2_CONTROL &= 0xFB
#define TIMER2_SET(x) TIMER2 = x
#define TIMER2_EVENT TMR2IE
#define TIMER2_EVENT_ENABLE() TIMER2_EVENT = ENABLE
#define TIMER2_EVENT_DISABLE() TIMER2_EVENT = DISABLE
#define TIMER2_EVENT_FLAG TMR2IF
#define TIMER2_EVENT_FLAG_CLEAR() TIMER2_EVENT_FLAG = CLEAR
//ccp1 defines
#define CCP1_CONTROL CCP1CON
#define CCP1_EVENT CCP1IE
#define CCP1_EVENT_ENABLE() CCP1_EVENT = ENABLE
#define CCP1_EVENT_DISABLE() CCP1_EVENT = DISABLE
#define CCP1_EVENT_FLAG CCP1IF
#define CCP1_EVENT_FLAG_CLEAR() CCP1_EVENT_FLAG = CLEAR
#define CCP1_PWM_IO_SET() PORT_C_IO_2_SET(IO_OUTPUT)
//ccp2 defines
#define CCP2_CONTROL CCP2CON
#define CCP2_EVENT CCP2IE
#define CCP2_EVENT_ENABLE() CCP2_EVENT = ENABLE
#define CCP2_EVENT_DISABLE() CCP2_EVENT = DISABLE
#define CCP2_EVENT_FLAG CCP2IF
#define CCP2_EVENT_FLAG_CLEAR() CCP2_EVENT_FLAG = CLEAR
#define CCP2_PWM_IO_SET() PORT_C_IO_1_SET(IO_OUTPUT)
//rs232 defines
#define RS232_TX_DATA TXREG
#define RS232_TX_EVENT TXIE
#define RS232_TX_EVENT_ENABLE() RS232_TX_EVENT = ENABLE
#define RS232_TX_EVENT_DISABLE() RS232_TX_EVENT = DISABLE
#define RS232_TX_EVENT_FLAG TXIF
#define RS232_RX_EVENT RCIE
#define RS232_RX_EVENT_ENABLE() RS232_RX_EVENT = ENABLE
#define RS232_RX_EVENT_DISABLE() RS232_RX_EVENT = DISABLE
#define RS232_RX_EVENT_FLAG RCIF
#define RS232_RX_EVENT_FLAG_CLEAR() RS232_RX_EVENT_FLAG = CLEAR
#define RS232_RX_DATA RCREG
#define RS232_RX_ERROR_OVERFLOW OERR
#define RS232_RX_ERROR_FRAMING FERR
#define RS232_RX_CONTINUOUS CREN
#define RS232_RX_CONTINUOUS_ON() RS232_RX_CONTINUOUS = ON
#define RS232_RX_CONTINUOUS_OFF() RS232_RX_CONTINUOUS = OFF
#define RS232_BAUDRATE_CONTROL SPBRG
#define RS232_BAUDRATE_SET(x) RS232_BAUDRATE_CONTROL = x
#define RS232_RX_CONTROL RCSTA
#define RS232_RX_CONTROL_SET(x) RS232_RX_CONTROL = x
#define RS232_TX_CONTROL TXSTA
#define RS232_TX_CONTROL_SET(x) RS232_TX_CONTROL = x
//INT external interrupt (RB0)
#define INT_EXT_EDGE_ON_RISING 1
#define INT_EXT_EDGE_ON_FALLING 0
#define INTERRUPT_EXTERNAL_EVENT INTE
#define INTERRUPT_EXTERNAL_EDGE INTEDG
#define INTERRUPT_EXTERNAL_EVENT_FLAG INTF
#define INTERRUPT_EXTERNAL_EVENT_FLAG_CLEAR() INTERRUPT_EXTERNAL_EVENT_FLAG = CLEAR
#define INTERRUPT_EXTERNAL_EDGE_SET(x) INTERRUPT_EXTERNAL_EDGE = x
#define INTERRUPT_EXTERNAL_EDGE_RISING() INTERRUPT_EXTERNAL_EDGE_SET(INT_EXT_EDGE_ON_RISING)
#define INTERRUPT_EXTERNAL_EDGE_FALLING() INTERRUPT_EXTERNAL_EDGE_SET(INT_EXT_EDGE_ON_FALLING)
#define INTERRUPT_EXTERNAL_EVENT_ENABLE() INTERRUPT_EXTERNAL_EVENT = ENABLE
#define INTERRUPT_EXTERNAL_EVENT_DISABLE() INTERRUPT_EXTERNAL_EVENT = DISABLE
//RB7:RB4 change interrupt
#define INTERRUPT_PORTB_EVENT RBIE
#define INTERRUPT_PORTB_EVENT_FLAG RBIF
#define INTERRUPT_PORTB_EVENT_FLAG_CLEAR() INTERRUPT_PORTB_EVENT_FLAG = CLEAR
#define INTERRUPT_PORTB_EVENT_ENABLE() INTERRUPT_PORTB_EVENT = ENABLE
#define INTERRUPT_PORTB_EVENT_DISABLE() INTERRUPT_PORTB_EVENT = DISABLE
//ADC
$$IF(FLASH)
#define ADRES ADRESH
$$ENDIF
#define ADC_CH0 0x00
#define ADC_CH1 0x08
#define ADC_CH2 0x10
#define ADC_CH3 0x18
#define ADC_CH4 0x20
#define ADC_CH5 0x28
#define ADC_CH6 0x30
#define ADC_CH7 0x38
#define ADC_EVENT ADIE
#define ADC_EVENT_FLAG ADIF
#define ADC_EVENT_ENABLE() ADC_EVENT = ENABLE
#define ADC_EVENT_DISABLE() ADC_EVENT = DISABLE
#define ADC_EVENT_FLAG_CLEAR() ADC_EVENT_FLAG = CLEAR
#endif // _TYPEDEFS_H_
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.