/** @Generated Pin Manager Header File @Company: Microchip Technology Inc. @File Name: pin_manager.h @Summary: This is the Pin Manager file generated using MPLAB(c) Code Configurator @Description: This header file provides implementations for pin APIs for all pins selected in the GUI. Generation Information : Product Revision : MPLAB(c) Code Configurator - 4.35 Device : PIC16F18855 Version : 1.01 The generated drivers are tested against the following: Compiler : XC8 1.35 MPLAB : MPLAB X 3.40 Copyright (c) 2013 - 2015 released Microchip Technology Inc. All rights reserved. Microchip licenses to you the right to use, modify, copy and distribute Software only when embedded on a Microchip microcontroller or digital signal controller that is integrated into your product or third party product (pursuant to the sublicense terms in the accompanying license agreement). You should refer to the license agreement accompanying this Software for additional information regarding your rights and obligations. SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. */ #ifndef PIN_MANAGER_H #define PIN_MANAGER_H #define INPUT 1 #define OUTPUT 0 #define HIGH 1 #define LOW 0 #define ANALOG 1 #define DIGITAL 0 #define PULL_UP_ENABLED 1 #define PULL_UP_DISABLED 0 // get/set IO_RA0 aliases #define IO_RA0_TRIS TRISAbits.TRISA0 #define IO_RA0_LAT LATAbits.LATA0 #define IO_RA0_PORT PORTAbits.RA0 #define IO_RA0_WPU WPUAbits.WPUA0 #define IO_RA0_OD ODCONAbits.ODCA0 #define IO_RA0_ANS ANSELAbits.ANSA0 #define IO_RA0_SetHigh() do { LATAbits.LATA0 = 1; } while(0) #define IO_RA0_SetLow() do { LATAbits.LATA0 = 0; } while(0) #define IO_RA0_Toggle() do { LATAbits.LATA0 = ~LATAbits.LATA0; } while(0) #define IO_RA0_GetValue() PORTAbits.RA0 #define IO_RA0_SetDigitalInput() do { TRISAbits.TRISA0 = 1; } while(0) #define IO_RA0_SetDigitalOutput() do { TRISAbits.TRISA0 = 0; } while(0) #define IO_RA0_SetPullup() do { WPUAbits.WPUA0 = 1; } while(0) #define IO_RA0_ResetPullup() do { WPUAbits.WPUA0 = 0; } while(0) #define IO_RA0_SetPushPull() do { ODCONAbits.ODCA0 = 0; } while(0) #define IO_RA0_SetOpenDrain() do { ODCONAbits.ODCA0 = 1; } while(0) #define IO_RA0_SetAnalogMode() do { ANSELAbits.ANSA0 = 1; } while(0) #define IO_RA0_SetDigitalMode() do { ANSELAbits.ANSA0 = 0; } while(0) // get/set IO_RA1 aliases #define IO_RA1_TRIS TRISAbits.TRISA1 #define IO_RA1_LAT LATAbits.LATA1 #define IO_RA1_PORT PORTAbits.RA1 #define IO_RA1_WPU WPUAbits.WPUA1 #define IO_RA1_OD ODCONAbits.ODCA1 #define IO_RA1_ANS ANSELAbits.ANSA1 #define IO_RA1_SetHigh() do { LATAbits.LATA1 = 1; } while(0) #define IO_RA1_SetLow() do { LATAbits.LATA1 = 0; } while(0) #define IO_RA1_Toggle() do { LATAbits.LATA1 = ~LATAbits.LATA1; } while(0) #define IO_RA1_GetValue() PORTAbits.RA1 #define IO_RA1_SetDigitalInput() do { TRISAbits.TRISA1 = 1; } while(0) #define IO_RA1_SetDigitalOutput() do { TRISAbits.TRISA1 = 0; } while(0) #define IO_RA1_SetPullup() do { WPUAbits.WPUA1 = 1; } while(0) #define IO_RA1_ResetPullup() do { WPUAbits.WPUA1 = 0; } while(0) #define IO_RA1_SetPushPull() do { ODCONAbits.ODCA1 = 0; } while(0) #define IO_RA1_SetOpenDrain() do { ODCONAbits.ODCA1 = 1; } while(0) #define IO_RA1_SetAnalogMode() do { ANSELAbits.ANSA1 = 1; } while(0) #define IO_RA1_SetDigitalMode() do { ANSELAbits.ANSA1 = 0; } while(0) // get/set channel_ANA2 aliases #define channel_ANA2_TRIS TRISAbits.TRISA2 #define channel_ANA2_LAT LATAbits.LATA2 #define channel_ANA2_PORT PORTAbits.RA2 #define channel_ANA2_WPU WPUAbits.WPUA2 #define channel_ANA2_OD ODCONAbits.ODCA2 #define channel_ANA2_ANS ANSELAbits.ANSA2 #define channel_ANA2_SetHigh() do { LATAbits.LATA2 = 1; } while(0) #define channel_ANA2_SetLow() do { LATAbits.LATA2 = 0; } while(0) #define channel_ANA2_Toggle() do { LATAbits.LATA2 = ~LATAbits.LATA2; } while(0) #define channel_ANA2_GetValue() PORTAbits.RA2 #define channel_ANA2_SetDigitalInput() do { TRISAbits.TRISA2 = 1; } while(0) #define channel_ANA2_SetDigitalOutput() do { TRISAbits.TRISA2 = 0; } while(0) #define channel_ANA2_SetPullup() do { WPUAbits.WPUA2 = 1; } while(0) #define channel_ANA2_ResetPullup() do { WPUAbits.WPUA2 = 0; } while(0) #define channel_ANA2_SetPushPull() do { ODCONAbits.ODCA2 = 0; } while(0) #define channel_ANA2_SetOpenDrain() do { ODCONAbits.ODCA2 = 1; } while(0) #define channel_ANA2_SetAnalogMode() do { ANSELAbits.ANSA2 = 1; } while(0) #define channel_ANA2_SetDigitalMode() do { ANSELAbits.ANSA2 = 0; } while(0) // get/set IO_RA3 aliases #define IO_RA3_TRIS TRISAbits.TRISA3 #define IO_RA3_LAT LATAbits.LATA3 #define IO_RA3_PORT PORTAbits.RA3 #define IO_RA3_WPU WPUAbits.WPUA3 #define IO_RA3_OD ODCONAbits.ODCA3 #define IO_RA3_ANS ANSELAbits.ANSA3 #define IO_RA3_SetHigh() do { LATAbits.LATA3 = 1; } while(0) #define IO_RA3_SetLow() do { LATAbits.LATA3 = 0; } while(0) #define IO_RA3_Toggle() do { LATAbits.LATA3 = ~LATAbits.LATA3; } while(0) #define IO_RA3_GetValue() PORTAbits.RA3 #define IO_RA3_SetDigitalInput() do { TRISAbits.TRISA3 = 1; } while(0) #define IO_RA3_SetDigitalOutput() do { TRISAbits.TRISA3 = 0; } while(0) #define IO_RA3_SetPullup() do { WPUAbits.WPUA3 = 1; } while(0) #define IO_RA3_ResetPullup() do { WPUAbits.WPUA3 = 0; } while(0) #define IO_RA3_SetPushPull() do { ODCONAbits.ODCA3 = 0; } while(0) #define IO_RA3_SetOpenDrain() do { ODCONAbits.ODCA3 = 1; } while(0) #define IO_RA3_SetAnalogMode() do { ANSELAbits.ANSA3 = 1; } while(0) #define IO_RA3_SetDigitalMode() do { ANSELAbits.ANSA3 = 0; } while(0) // get/set IO_RA4 aliases #define IO_RA4_TRIS TRISAbits.TRISA4 #define IO_RA4_LAT LATAbits.LATA4 #define IO_RA4_PORT PORTAbits.RA4 #define IO_RA4_WPU WPUAbits.WPUA4 #define IO_RA4_OD ODCONAbits.ODCA4 #define IO_RA4_ANS ANSELAbits.ANSA4 #define IO_RA4_SetHigh() do { LATAbits.LATA4 = 1; } while(0) #define IO_RA4_SetLow() do { LATAbits.LATA4 = 0; } while(0) #define IO_RA4_Toggle() do { LATAbits.LATA4 = ~LATAbits.LATA4; } while(0) #define IO_RA4_GetValue() PORTAbits.RA4 #define IO_RA4_SetDigitalInput() do { TRISAbits.TRISA4 = 1; } while(0) #define IO_RA4_SetDigitalOutput() do { TRISAbits.TRISA4 = 0; } while(0) #define IO_RA4_SetPullup() do { WPUAbits.WPUA4 = 1; } while(0) #define IO_RA4_ResetPullup() do { WPUAbits.WPUA4 = 0; } while(0) #define IO_RA4_SetPushPull() do { ODCONAbits.ODCA4 = 0; } while(0) #define IO_RA4_SetOpenDrain() do { ODCONAbits.ODCA4 = 1; } while(0) #define IO_RA4_SetAnalogMode() do { ANSELAbits.ANSA4 = 1; } while(0) #define IO_RA4_SetDigitalMode() do { ANSELAbits.ANSA4 = 0; } while(0) // get/set IO_RA5 aliases #define IO_RA5_TRIS TRISAbits.TRISA5 #define IO_RA5_LAT LATAbits.LATA5 #define IO_RA5_PORT PORTAbits.RA5 #define IO_RA5_WPU WPUAbits.WPUA5 #define IO_RA5_OD ODCONAbits.ODCA5 #define IO_RA5_ANS ANSELAbits.ANSA5 #define IO_RA5_SetHigh() do { LATAbits.LATA5 = 1; } while(0) #define IO_RA5_SetLow() do { LATAbits.LATA5 = 0; } while(0) #define IO_RA5_Toggle() do { LATAbits.LATA5 = ~LATAbits.LATA5; } while(0) #define IO_RA5_GetValue() PORTAbits.RA5 #define IO_RA5_SetDigitalInput() do { TRISAbits.TRISA5 = 1; } while(0) #define IO_RA5_SetDigitalOutput() do { TRISAbits.TRISA5 = 0; } while(0) #define IO_RA5_SetPullup() do { WPUAbits.WPUA5 = 1; } while(0) #define IO_RA5_ResetPullup() do { WPUAbits.WPUA5 = 0; } while(0) #define IO_RA5_SetPushPull() do { ODCONAbits.ODCA5 = 0; } while(0) #define IO_RA5_SetOpenDrain() do { ODCONAbits.ODCA5 = 1; } while(0) #define IO_RA5_SetAnalogMode() do { ANSELAbits.ANSA5 = 1; } while(0) #define IO_RA5_SetDigitalMode() do { ANSELAbits.ANSA5 = 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.ANSB0 #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.ANSB0 = 1; } while(0) #define IO_RB0_SetDigitalMode() do { ANSELBbits.ANSB0 = 0; } while(0) // get/set IO_RB1 aliases #define IO_RB1_TRIS TRISBbits.TRISB1 #define IO_RB1_LAT LATBbits.LATB1 #define IO_RB1_PORT PORTBbits.RB1 #define IO_RB1_WPU WPUBbits.WPUB1 #define IO_RB1_OD ODCONBbits.ODCB1 #define IO_RB1_ANS ANSELBbits.ANSB1 #define IO_RB1_SetHigh() do { LATBbits.LATB1 = 1; } while(0) #define IO_RB1_SetLow() do { LATBbits.LATB1 = 0; } while(0) #define IO_RB1_Toggle() do { LATBbits.LATB1 = ~LATBbits.LATB1; } while(0) #define IO_RB1_GetValue() PORTBbits.RB1 #define IO_RB1_SetDigitalInput() do { TRISBbits.TRISB1 = 1; } while(0) #define IO_RB1_SetDigitalOutput() do { TRISBbits.TRISB1 = 0; } while(0) #define IO_RB1_SetPullup() do { WPUBbits.WPUB1 = 1; } while(0) #define IO_RB1_ResetPullup() do { WPUBbits.WPUB1 = 0; } while(0) #define IO_RB1_SetPushPull() do { ODCONBbits.ODCB1 = 0; } while(0) #define IO_RB1_SetOpenDrain() do { ODCONBbits.ODCB1 = 1; } while(0) #define IO_RB1_SetAnalogMode() do { ANSELBbits.ANSB1 = 1; } while(0) #define IO_RB1_SetDigitalMode() do { ANSELBbits.ANSB1 = 0; } while(0) // get/set IO_RB2 aliases #define IO_RB2_TRIS TRISBbits.TRISB2 #define IO_RB2_LAT LATBbits.LATB2 #define IO_RB2_PORT PORTBbits.RB2 #define IO_RB2_WPU WPUBbits.WPUB2 #define IO_RB2_OD ODCONBbits.ODCB2 #define IO_RB2_ANS ANSELBbits.ANSB2 #define IO_RB2_SetHigh() do { LATBbits.LATB2 = 1; } while(0) #define IO_RB2_SetLow() do { LATBbits.LATB2 = 0; } while(0) #define IO_RB2_Toggle() do { LATBbits.LATB2 = ~LATBbits.LATB2; } while(0) #define IO_RB2_GetValue() PORTBbits.RB2 #define IO_RB2_SetDigitalInput() do { TRISBbits.TRISB2 = 1; } while(0) #define IO_RB2_SetDigitalOutput() do { TRISBbits.TRISB2 = 0; } while(0) #define IO_RB2_SetPullup() do { WPUBbits.WPUB2 = 1; } while(0) #define IO_RB2_ResetPullup() do { WPUBbits.WPUB2 = 0; } while(0) #define IO_RB2_SetPushPull() do { ODCONBbits.ODCB2 = 0; } while(0) #define IO_RB2_SetOpenDrain() do { ODCONBbits.ODCB2 = 1; } while(0) #define IO_RB2_SetAnalogMode() do { ANSELBbits.ANSB2 = 1; } while(0) #define IO_RB2_SetDigitalMode() do { ANSELBbits.ANSB2 = 0; } while(0) // get/set IO_RB3 aliases #define IO_RB3_TRIS TRISBbits.TRISB3 #define IO_RB3_LAT LATBbits.LATB3 #define IO_RB3_PORT PORTBbits.RB3 #define IO_RB3_WPU WPUBbits.WPUB3 #define IO_RB3_OD ODCONBbits.ODCB3 #define IO_RB3_ANS ANSELBbits.ANSB3 #define IO_RB3_SetHigh() do { LATBbits.LATB3 = 1; } while(0) #define IO_RB3_SetLow() do { LATBbits.LATB3 = 0; } while(0) #define IO_RB3_Toggle() do { LATBbits.LATB3 = ~LATBbits.LATB3; } while(0) #define IO_RB3_GetValue() PORTBbits.RB3 #define IO_RB3_SetDigitalInput() do { TRISBbits.TRISB3 = 1; } while(0) #define IO_RB3_SetDigitalOutput() do { TRISBbits.TRISB3 = 0; } while(0) #define IO_RB3_SetPullup() do { WPUBbits.WPUB3 = 1; } while(0) #define IO_RB3_ResetPullup() do { WPUBbits.WPUB3 = 0; } while(0) #define IO_RB3_SetPushPull() do { ODCONBbits.ODCB3 = 0; } while(0) #define IO_RB3_SetOpenDrain() do { ODCONBbits.ODCB3 = 1; } while(0) #define IO_RB3_SetAnalogMode() do { ANSELBbits.ANSB3 = 1; } while(0) #define IO_RB3_SetDigitalMode() do { ANSELBbits.ANSB3 = 0; } while(0) // get/set IO_RB4 aliases #define IO_RB4_TRIS TRISBbits.TRISB4 #define IO_RB4_LAT LATBbits.LATB4 #define IO_RB4_PORT PORTBbits.RB4 #define IO_RB4_WPU WPUBbits.WPUB4 #define IO_RB4_OD ODCONBbits.ODCB4 #define IO_RB4_ANS ANSELBbits.ANSB4 #define IO_RB4_SetHigh() do { LATBbits.LATB4 = 1; } while(0) #define IO_RB4_SetLow() do { LATBbits.LATB4 = 0; } while(0) #define IO_RB4_Toggle() do { LATBbits.LATB4 = ~LATBbits.LATB4; } while(0) #define IO_RB4_GetValue() PORTBbits.RB4 #define IO_RB4_SetDigitalInput() do { TRISBbits.TRISB4 = 1; } while(0) #define IO_RB4_SetDigitalOutput() do { TRISBbits.TRISB4 = 0; } while(0) #define IO_RB4_SetPullup() do { WPUBbits.WPUB4 = 1; } while(0) #define IO_RB4_ResetPullup() do { WPUBbits.WPUB4 = 0; } while(0) #define IO_RB4_SetPushPull() do { ODCONBbits.ODCB4 = 0; } while(0) #define IO_RB4_SetOpenDrain() do { ODCONBbits.ODCB4 = 1; } while(0) #define IO_RB4_SetAnalogMode() do { ANSELBbits.ANSB4 = 1; } while(0) #define IO_RB4_SetDigitalMode() do { ANSELBbits.ANSB4 = 0; } while(0) // get/set IO_RB5 aliases #define IO_RB5_TRIS TRISBbits.TRISB5 #define IO_RB5_LAT LATBbits.LATB5 #define IO_RB5_PORT PORTBbits.RB5 #define IO_RB5_WPU WPUBbits.WPUB5 #define IO_RB5_OD ODCONBbits.ODCB5 #define IO_RB5_ANS ANSELBbits.ANSB5 #define IO_RB5_SetHigh() do { LATBbits.LATB5 = 1; } while(0) #define IO_RB5_SetLow() do { LATBbits.LATB5 = 0; } while(0) #define IO_RB5_Toggle() do { LATBbits.LATB5 = ~LATBbits.LATB5; } while(0) #define IO_RB5_GetValue() PORTBbits.RB5 #define IO_RB5_SetDigitalInput() do { TRISBbits.TRISB5 = 1; } while(0) #define IO_RB5_SetDigitalOutput() do { TRISBbits.TRISB5 = 0; } while(0) #define IO_RB5_SetPullup() do { WPUBbits.WPUB5 = 1; } while(0) #define IO_RB5_ResetPullup() do { WPUBbits.WPUB5 = 0; } while(0) #define IO_RB5_SetPushPull() do { ODCONBbits.ODCB5 = 0; } while(0) #define IO_RB5_SetOpenDrain() do { ODCONBbits.ODCB5 = 1; } while(0) #define IO_RB5_SetAnalogMode() do { ANSELBbits.ANSB5 = 1; } while(0) #define IO_RB5_SetDigitalMode() do { ANSELBbits.ANSB5 = 0; } while(0) // get/set IO_RB6 aliases #define IO_RB6_TRIS TRISBbits.TRISB6 #define IO_RB6_LAT LATBbits.LATB6 #define IO_RB6_PORT PORTBbits.RB6 #define IO_RB6_WPU WPUBbits.WPUB6 #define IO_RB6_OD ODCONBbits.ODCB6 #define IO_RB6_ANS ANSELBbits.ANSB6 #define IO_RB6_SetHigh() do { LATBbits.LATB6 = 1; } while(0) #define IO_RB6_SetLow() do { LATBbits.LATB6 = 0; } while(0) #define IO_RB6_Toggle() do { LATBbits.LATB6 = ~LATBbits.LATB6; } while(0) #define IO_RB6_GetValue() PORTBbits.RB6 #define IO_RB6_SetDigitalInput() do { TRISBbits.TRISB6 = 1; } while(0) #define IO_RB6_SetDigitalOutput() do { TRISBbits.TRISB6 = 0; } while(0) #define IO_RB6_SetPullup() do { WPUBbits.WPUB6 = 1; } while(0) #define IO_RB6_ResetPullup() do { WPUBbits.WPUB6 = 0; } while(0) #define IO_RB6_SetPushPull() do { ODCONBbits.ODCB6 = 0; } while(0) #define IO_RB6_SetOpenDrain() do { ODCONBbits.ODCB6 = 1; } while(0) #define IO_RB6_SetAnalogMode() do { ANSELBbits.ANSB6 = 1; } while(0) #define IO_RB6_SetDigitalMode() do { ANSELBbits.ANSB6 = 0; } while(0) // get/set IO_RB7 aliases #define IO_RB7_TRIS TRISBbits.TRISB7 #define IO_RB7_LAT LATBbits.LATB7 #define IO_RB7_PORT PORTBbits.RB7 #define IO_RB7_WPU WPUBbits.WPUB7 #define IO_RB7_OD ODCONBbits.ODCB7 #define IO_RB7_ANS ANSELBbits.ANSB7 #define IO_RB7_SetHigh() do { LATBbits.LATB7 = 1; } while(0) #define IO_RB7_SetLow() do { LATBbits.LATB7 = 0; } while(0) #define IO_RB7_Toggle() do { LATBbits.LATB7 = ~LATBbits.LATB7; } while(0) #define IO_RB7_GetValue() PORTBbits.RB7 #define IO_RB7_SetDigitalInput() do { TRISBbits.TRISB7 = 1; } while(0) #define IO_RB7_SetDigitalOutput() do { TRISBbits.TRISB7 = 0; } while(0) #define IO_RB7_SetPullup() do { WPUBbits.WPUB7 = 1; } while(0) #define IO_RB7_ResetPullup() do { WPUBbits.WPUB7 = 0; } while(0) #define IO_RB7_SetPushPull() do { ODCONBbits.ODCB7 = 0; } while(0) #define IO_RB7_SetOpenDrain() do { ODCONBbits.ODCB7 = 1; } while(0) #define IO_RB7_SetAnalogMode() do { ANSELBbits.ANSB7 = 1; } while(0) #define IO_RB7_SetDigitalMode() do { ANSELBbits.ANSB7 = 0; } while(0) /** @Param none @Returns none @Description GPIO and peripheral I/O initialization @Example PIN_MANAGER_Initialize(); */ void PIN_MANAGER_Initialize (void); /** * @Param none * @Returns none * @Description Interrupt on Change Handling routine * @Example PIN_MANAGER_IOC(); */ void PIN_MANAGER_IOC(void); #endif // PIN_MANAGER_H /** End of File */