finish devleop can interface not yet tested

This commit is contained in:
2023-08-23 13:45:34 +02:00
parent ff9137a026
commit 21f9cb7f62
23 changed files with 927 additions and 1144 deletions

View File

@ -64,16 +64,16 @@ void PIN_MANAGER_Initialize(void)
/**
TRISx registers
*/
TRISA = 0xFF;
TRISB = 0xFE;
TRISA = 0x00;
TRISB = 0xF6;
TRISC = 0xFF;
/**
ANSELx registers
*/
ANSELC = 0xFF;
ANSELB = 0xF6;
ANSELA = 0x7F;
ANSELB = 0xEE;
ANSELA = 0x00;
/**
WPUx registers
@ -112,7 +112,8 @@ void PIN_MANAGER_Initialize(void)
CANRXPPS = 0x0B; //RB3->ECAN:CANRX;
CANRXPPS = 0x0C; //RB4->ECAN:CANRX;
RB3PPS = 0x33; //RB3->ECAN:CANTX0;
}
void PIN_MANAGER_IOC(void)

View File

@ -65,45 +65,165 @@
#define PULL_UP_ENABLED 1
#define PULL_UP_DISABLED 0
// get/set IO_RA7 aliases
#define IO_RA7_TRIS TRISAbits.TRISA7
#define IO_RA7_LAT LATAbits.LATA7
#define IO_RA7_PORT PORTAbits.RA7
#define IO_RA7_WPU WPUAbits.WPUA7
#define IO_RA7_OD ODCONAbits.ODCA7
#define IO_RA7_ANS ANSELAbits.ANSELA7
#define IO_RA7_SetHigh() do { LATAbits.LATA7 = 1; } while(0)
#define IO_RA7_SetLow() do { LATAbits.LATA7 = 0; } while(0)
#define IO_RA7_Toggle() do { LATAbits.LATA7 = ~LATAbits.LATA7; } while(0)
#define IO_RA7_GetValue() PORTAbits.RA7
#define IO_RA7_SetDigitalInput() do { TRISAbits.TRISA7 = 1; } while(0)
#define IO_RA7_SetDigitalOutput() do { TRISAbits.TRISA7 = 0; } while(0)
#define IO_RA7_SetPullup() do { WPUAbits.WPUA7 = 1; } while(0)
#define IO_RA7_ResetPullup() do { WPUAbits.WPUA7 = 0; } while(0)
#define IO_RA7_SetPushPull() do { ODCONAbits.ODCA7 = 0; } while(0)
#define IO_RA7_SetOpenDrain() do { ODCONAbits.ODCA7 = 1; } while(0)
#define IO_RA7_SetAnalogMode() do { ANSELAbits.ANSELA7 = 1; } while(0)
#define IO_RA7_SetDigitalMode() do { ANSELAbits.ANSELA7 = 0; } while(0)
// get/set OUTPUT1 aliases
#define OUTPUT1_TRIS TRISAbits.TRISA0
#define OUTPUT1_LAT LATAbits.LATA0
#define OUTPUT1_PORT PORTAbits.RA0
#define OUTPUT1_WPU WPUAbits.WPUA0
#define OUTPUT1_OD ODCONAbits.ODCA0
#define OUTPUT1_ANS ANSELAbits.ANSELA0
#define OUTPUT1_SetHigh() do { LATAbits.LATA0 = 1; } while(0)
#define OUTPUT1_SetLow() do { LATAbits.LATA0 = 0; } while(0)
#define OUTPUT1_Toggle() do { LATAbits.LATA0 = ~LATAbits.LATA0; } while(0)
#define OUTPUT1_GetValue() PORTAbits.RA0
#define OUTPUT1_SetDigitalInput() do { TRISAbits.TRISA0 = 1; } while(0)
#define OUTPUT1_SetDigitalOutput() do { TRISAbits.TRISA0 = 0; } while(0)
#define OUTPUT1_SetPullup() do { WPUAbits.WPUA0 = 1; } while(0)
#define OUTPUT1_ResetPullup() do { WPUAbits.WPUA0 = 0; } while(0)
#define OUTPUT1_SetPushPull() do { ODCONAbits.ODCA0 = 0; } while(0)
#define OUTPUT1_SetOpenDrain() do { ODCONAbits.ODCA0 = 1; } while(0)
#define OUTPUT1_SetAnalogMode() do { ANSELAbits.ANSELA0 = 1; } while(0)
#define OUTPUT1_SetDigitalMode() do { ANSELAbits.ANSELA0 = 0; } while(0)
// get/set IO_RB0 aliases
#define IO_RB0_TRIS TRISBbits.TRISB0
#define IO_RB0_LAT LATBbits.LATB0
#define IO_RB0_PORT PORTBbits.RB0
#define IO_RB0_WPU WPUBbits.WPUB0
#define IO_RB0_OD ODCONBbits.ODCB0
#define IO_RB0_ANS ANSELBbits.ANSELB0
#define IO_RB0_SetHigh() do { LATBbits.LATB0 = 1; } while(0)
#define IO_RB0_SetLow() do { LATBbits.LATB0 = 0; } while(0)
#define IO_RB0_Toggle() do { LATBbits.LATB0 = ~LATBbits.LATB0; } while(0)
#define IO_RB0_GetValue() PORTBbits.RB0
#define IO_RB0_SetDigitalInput() do { TRISBbits.TRISB0 = 1; } while(0)
#define IO_RB0_SetDigitalOutput() do { TRISBbits.TRISB0 = 0; } while(0)
#define IO_RB0_SetPullup() do { WPUBbits.WPUB0 = 1; } while(0)
#define IO_RB0_ResetPullup() do { WPUBbits.WPUB0 = 0; } while(0)
#define IO_RB0_SetPushPull() do { ODCONBbits.ODCB0 = 0; } while(0)
#define IO_RB0_SetOpenDrain() do { ODCONBbits.ODCB0 = 1; } while(0)
#define IO_RB0_SetAnalogMode() do { ANSELBbits.ANSELB0 = 1; } while(0)
#define IO_RB0_SetDigitalMode() do { ANSELBbits.ANSELB0 = 0; } while(0)
// get/set OUTPUT2 aliases
#define OUTPUT2_TRIS TRISAbits.TRISA1
#define OUTPUT2_LAT LATAbits.LATA1
#define OUTPUT2_PORT PORTAbits.RA1
#define OUTPUT2_WPU WPUAbits.WPUA1
#define OUTPUT2_OD ODCONAbits.ODCA1
#define OUTPUT2_ANS ANSELAbits.ANSELA1
#define OUTPUT2_SetHigh() do { LATAbits.LATA1 = 1; } while(0)
#define OUTPUT2_SetLow() do { LATAbits.LATA1 = 0; } while(0)
#define OUTPUT2_Toggle() do { LATAbits.LATA1 = ~LATAbits.LATA1; } while(0)
#define OUTPUT2_GetValue() PORTAbits.RA1
#define OUTPUT2_SetDigitalInput() do { TRISAbits.TRISA1 = 1; } while(0)
#define OUTPUT2_SetDigitalOutput() do { TRISAbits.TRISA1 = 0; } while(0)
#define OUTPUT2_SetPullup() do { WPUAbits.WPUA1 = 1; } while(0)
#define OUTPUT2_ResetPullup() do { WPUAbits.WPUA1 = 0; } while(0)
#define OUTPUT2_SetPushPull() do { ODCONAbits.ODCA1 = 0; } while(0)
#define OUTPUT2_SetOpenDrain() do { ODCONAbits.ODCA1 = 1; } while(0)
#define OUTPUT2_SetAnalogMode() do { ANSELAbits.ANSELA1 = 1; } while(0)
#define OUTPUT2_SetDigitalMode() do { ANSELAbits.ANSELA1 = 0; } while(0)
// get/set OUTPUT3 aliases
#define OUTPUT3_TRIS TRISAbits.TRISA2
#define OUTPUT3_LAT LATAbits.LATA2
#define OUTPUT3_PORT PORTAbits.RA2
#define OUTPUT3_WPU WPUAbits.WPUA2
#define OUTPUT3_OD ODCONAbits.ODCA2
#define OUTPUT3_ANS ANSELAbits.ANSELA2
#define OUTPUT3_SetHigh() do { LATAbits.LATA2 = 1; } while(0)
#define OUTPUT3_SetLow() do { LATAbits.LATA2 = 0; } while(0)
#define OUTPUT3_Toggle() do { LATAbits.LATA2 = ~LATAbits.LATA2; } while(0)
#define OUTPUT3_GetValue() PORTAbits.RA2
#define OUTPUT3_SetDigitalInput() do { TRISAbits.TRISA2 = 1; } while(0)
#define OUTPUT3_SetDigitalOutput() do { TRISAbits.TRISA2 = 0; } while(0)
#define OUTPUT3_SetPullup() do { WPUAbits.WPUA2 = 1; } while(0)
#define OUTPUT3_ResetPullup() do { WPUAbits.WPUA2 = 0; } while(0)
#define OUTPUT3_SetPushPull() do { ODCONAbits.ODCA2 = 0; } while(0)
#define OUTPUT3_SetOpenDrain() do { ODCONAbits.ODCA2 = 1; } while(0)
#define OUTPUT3_SetAnalogMode() do { ANSELAbits.ANSELA2 = 1; } while(0)
#define OUTPUT3_SetDigitalMode() do { ANSELAbits.ANSELA2 = 0; } while(0)
// get/set OUTPUT4 aliases
#define OUTPUT4_TRIS TRISAbits.TRISA3
#define OUTPUT4_LAT LATAbits.LATA3
#define OUTPUT4_PORT PORTAbits.RA3
#define OUTPUT4_WPU WPUAbits.WPUA3
#define OUTPUT4_OD ODCONAbits.ODCA3
#define OUTPUT4_ANS ANSELAbits.ANSELA3
#define OUTPUT4_SetHigh() do { LATAbits.LATA3 = 1; } while(0)
#define OUTPUT4_SetLow() do { LATAbits.LATA3 = 0; } while(0)
#define OUTPUT4_Toggle() do { LATAbits.LATA3 = ~LATAbits.LATA3; } while(0)
#define OUTPUT4_GetValue() PORTAbits.RA3
#define OUTPUT4_SetDigitalInput() do { TRISAbits.TRISA3 = 1; } while(0)
#define OUTPUT4_SetDigitalOutput() do { TRISAbits.TRISA3 = 0; } while(0)
#define OUTPUT4_SetPullup() do { WPUAbits.WPUA3 = 1; } while(0)
#define OUTPUT4_ResetPullup() do { WPUAbits.WPUA3 = 0; } while(0)
#define OUTPUT4_SetPushPull() do { ODCONAbits.ODCA3 = 0; } while(0)
#define OUTPUT4_SetOpenDrain() do { ODCONAbits.ODCA3 = 1; } while(0)
#define OUTPUT4_SetAnalogMode() do { ANSELAbits.ANSELA3 = 1; } while(0)
#define OUTPUT4_SetDigitalMode() do { ANSELAbits.ANSELA3 = 0; } while(0)
// get/set OUTPUT5 aliases
#define OUTPUT5_TRIS TRISAbits.TRISA4
#define OUTPUT5_LAT LATAbits.LATA4
#define OUTPUT5_PORT PORTAbits.RA4
#define OUTPUT5_WPU WPUAbits.WPUA4
#define OUTPUT5_OD ODCONAbits.ODCA4
#define OUTPUT5_ANS ANSELAbits.ANSELA4
#define OUTPUT5_SetHigh() do { LATAbits.LATA4 = 1; } while(0)
#define OUTPUT5_SetLow() do { LATAbits.LATA4 = 0; } while(0)
#define OUTPUT5_Toggle() do { LATAbits.LATA4 = ~LATAbits.LATA4; } while(0)
#define OUTPUT5_GetValue() PORTAbits.RA4
#define OUTPUT5_SetDigitalInput() do { TRISAbits.TRISA4 = 1; } while(0)
#define OUTPUT5_SetDigitalOutput() do { TRISAbits.TRISA4 = 0; } while(0)
#define OUTPUT5_SetPullup() do { WPUAbits.WPUA4 = 1; } while(0)
#define OUTPUT5_ResetPullup() do { WPUAbits.WPUA4 = 0; } while(0)
#define OUTPUT5_SetPushPull() do { ODCONAbits.ODCA4 = 0; } while(0)
#define OUTPUT5_SetOpenDrain() do { ODCONAbits.ODCA4 = 1; } while(0)
#define OUTPUT5_SetAnalogMode() do { ANSELAbits.ANSELA4 = 1; } while(0)
#define OUTPUT5_SetDigitalMode() do { ANSELAbits.ANSELA4 = 0; } while(0)
// get/set OUTPUT6 aliases
#define OUTPUT6_TRIS TRISAbits.TRISA5
#define OUTPUT6_LAT LATAbits.LATA5
#define OUTPUT6_PORT PORTAbits.RA5
#define OUTPUT6_WPU WPUAbits.WPUA5
#define OUTPUT6_OD ODCONAbits.ODCA5
#define OUTPUT6_ANS ANSELAbits.ANSELA5
#define OUTPUT6_SetHigh() do { LATAbits.LATA5 = 1; } while(0)
#define OUTPUT6_SetLow() do { LATAbits.LATA5 = 0; } while(0)
#define OUTPUT6_Toggle() do { LATAbits.LATA5 = ~LATAbits.LATA5; } while(0)
#define OUTPUT6_GetValue() PORTAbits.RA5
#define OUTPUT6_SetDigitalInput() do { TRISAbits.TRISA5 = 1; } while(0)
#define OUTPUT6_SetDigitalOutput() do { TRISAbits.TRISA5 = 0; } while(0)
#define OUTPUT6_SetPullup() do { WPUAbits.WPUA5 = 1; } while(0)
#define OUTPUT6_ResetPullup() do { WPUAbits.WPUA5 = 0; } while(0)
#define OUTPUT6_SetPushPull() do { ODCONAbits.ODCA5 = 0; } while(0)
#define OUTPUT6_SetOpenDrain() do { ODCONAbits.ODCA5 = 1; } while(0)
#define OUTPUT6_SetAnalogMode() do { ANSELAbits.ANSELA5 = 1; } while(0)
#define OUTPUT6_SetDigitalMode() do { ANSELAbits.ANSELA5 = 0; } while(0)
// get/set OUTPUT7 aliases
#define OUTPUT7_TRIS TRISAbits.TRISA6
#define OUTPUT7_LAT LATAbits.LATA6
#define OUTPUT7_PORT PORTAbits.RA6
#define OUTPUT7_WPU WPUAbits.WPUA6
#define OUTPUT7_OD ODCONAbits.ODCA6
#define OUTPUT7_ANS ANSELAbits.ANSELA6
#define OUTPUT7_SetHigh() do { LATAbits.LATA6 = 1; } while(0)
#define OUTPUT7_SetLow() do { LATAbits.LATA6 = 0; } while(0)
#define OUTPUT7_Toggle() do { LATAbits.LATA6 = ~LATAbits.LATA6; } while(0)
#define OUTPUT7_GetValue() PORTAbits.RA6
#define OUTPUT7_SetDigitalInput() do { TRISAbits.TRISA6 = 1; } while(0)
#define OUTPUT7_SetDigitalOutput() do { TRISAbits.TRISA6 = 0; } while(0)
#define OUTPUT7_SetPullup() do { WPUAbits.WPUA6 = 1; } while(0)
#define OUTPUT7_ResetPullup() do { WPUAbits.WPUA6 = 0; } while(0)
#define OUTPUT7_SetPushPull() do { ODCONAbits.ODCA6 = 0; } while(0)
#define OUTPUT7_SetOpenDrain() do { ODCONAbits.ODCA6 = 1; } while(0)
#define OUTPUT7_SetAnalogMode() do { ANSELAbits.ANSELA6 = 1; } while(0)
#define OUTPUT7_SetDigitalMode() do { ANSELAbits.ANSELA6 = 0; } while(0)
// get/set OUTPUT8 aliases
#define OUTPUT8_TRIS TRISAbits.TRISA7
#define OUTPUT8_LAT LATAbits.LATA7
#define OUTPUT8_PORT PORTAbits.RA7
#define OUTPUT8_WPU WPUAbits.WPUA7
#define OUTPUT8_OD ODCONAbits.ODCA7
#define OUTPUT8_ANS ANSELAbits.ANSELA7
#define OUTPUT8_SetHigh() do { LATAbits.LATA7 = 1; } while(0)
#define OUTPUT8_SetLow() do { LATAbits.LATA7 = 0; } while(0)
#define OUTPUT8_Toggle() do { LATAbits.LATA7 = ~LATAbits.LATA7; } while(0)
#define OUTPUT8_GetValue() PORTAbits.RA7
#define OUTPUT8_SetDigitalInput() do { TRISAbits.TRISA7 = 1; } while(0)
#define OUTPUT8_SetDigitalOutput() do { TRISAbits.TRISA7 = 0; } while(0)
#define OUTPUT8_SetPullup() do { WPUAbits.WPUA7 = 1; } while(0)
#define OUTPUT8_ResetPullup() do { WPUAbits.WPUA7 = 0; } while(0)
#define OUTPUT8_SetPushPull() do { ODCONAbits.ODCA7 = 0; } while(0)
#define OUTPUT8_SetOpenDrain() do { ODCONAbits.ODCA7 = 1; } while(0)
#define OUTPUT8_SetAnalogMode() do { ANSELAbits.ANSELA7 = 1; } while(0)
#define OUTPUT8_SetDigitalMode() do { ANSELAbits.ANSELA7 = 0; } while(0)
// get/set RB3 procedures
#define RB3_SetHigh() do { LATBbits.LATB3 = 1; } while(0)
@ -117,6 +237,18 @@
#define RB3_SetAnalogMode() do { ANSELBbits.ANSELB3 = 1; } while(0)
#define RB3_SetDigitalMode() do { ANSELBbits.ANSELB3 = 0; } while(0)
// get/set RB4 procedures
#define RB4_SetHigh() do { LATBbits.LATB4 = 1; } while(0)
#define RB4_SetLow() do { LATBbits.LATB4 = 0; } while(0)
#define RB4_Toggle() do { LATBbits.LATB4 = ~LATBbits.LATB4; } while(0)
#define RB4_GetValue() PORTBbits.RB4
#define RB4_SetDigitalInput() do { TRISBbits.TRISB4 = 1; } while(0)
#define RB4_SetDigitalOutput() do { TRISBbits.TRISB4 = 0; } while(0)
#define RB4_SetPullup() do { WPUBbits.WPUB4 = 1; } while(0)
#define RB4_ResetPullup() do { WPUBbits.WPUB4 = 0; } while(0)
#define RB4_SetAnalogMode() do { ANSELBbits.ANSELB4 = 1; } while(0)
#define RB4_SetDigitalMode() do { ANSELBbits.ANSELB4 = 0; } while(0)
/**
@Param
none