X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Finclude%2Fpic%2Fpic16f877a.h;h=5fa4fda1e53d849beb410eefae9238596f339605;hb=d1509cf37c6ba9cc5aa238fcce11824efefc7941;hp=ec39d13927f068ebf4c31c4360af3c7173fd533b;hpb=52df981797010227196dd29cd77831d01e1825a8;p=fw%2Fsdcc diff --git a/device/include/pic/pic16f877a.h b/device/include/pic/pic16f877a.h index ec39d139..5fa4fda1 100644 --- a/device/include/pic/pic16f877a.h +++ b/device/include/pic/pic16f877a.h @@ -4,7 +4,7 @@ // // This header file was automatically generated by: // -// inc2h.pl V1.6 +// inc2h.pl V4514 // // Copyright (c) 2002, Kevin L. Pauba, All Rights Reserved // @@ -87,63 +87,6 @@ // Memory organization. // -#pragma memmap INDF_ADDR INDF_ADDR SFR 0x000 // INDF -#pragma memmap TMR0_ADDR TMR0_ADDR SFR 0x000 // TMR0 -#pragma memmap PCL_ADDR PCL_ADDR SFR 0x000 // PCL -#pragma memmap STATUS_ADDR STATUS_ADDR SFR 0x000 // STATUS -#pragma memmap FSR_ADDR FSR_ADDR SFR 0x000 // FSR -#pragma memmap PORTA_ADDR PORTA_ADDR SFR 0x000 // PORTA -#pragma memmap PORTB_ADDR PORTB_ADDR SFR 0x000 // PORTB -#pragma memmap PORTC_ADDR PORTC_ADDR SFR 0x000 // PORTC -#pragma memmap PORTD_ADDR PORTD_ADDR SFR 0x000 // PORTD -#pragma memmap PORTE_ADDR PORTE_ADDR SFR 0x000 // PORTE -#pragma memmap PCLATH_ADDR PCLATH_ADDR SFR 0x000 // PCLATH -#pragma memmap INTCON_ADDR INTCON_ADDR SFR 0x000 // INTCON -#pragma memmap PIR1_ADDR PIR1_ADDR SFR 0x000 // PIR1 -#pragma memmap PIR2_ADDR PIR2_ADDR SFR 0x000 // PIR2 -#pragma memmap TMR1L_ADDR TMR1L_ADDR SFR 0x000 // TMR1L -#pragma memmap TMR1H_ADDR TMR1H_ADDR SFR 0x000 // TMR1H -#pragma memmap T1CON_ADDR T1CON_ADDR SFR 0x000 // T1CON -#pragma memmap TMR2_ADDR TMR2_ADDR SFR 0x000 // TMR2 -#pragma memmap T2CON_ADDR T2CON_ADDR SFR 0x000 // T2CON -#pragma memmap SSPBUF_ADDR SSPBUF_ADDR SFR 0x000 // SSPBUF -#pragma memmap SSPCON_ADDR SSPCON_ADDR SFR 0x000 // SSPCON -#pragma memmap CCPR1L_ADDR CCPR1L_ADDR SFR 0x000 // CCPR1L -#pragma memmap CCPR1H_ADDR CCPR1H_ADDR SFR 0x000 // CCPR1H -#pragma memmap CCP1CON_ADDR CCP1CON_ADDR SFR 0x000 // CCP1CON -#pragma memmap RCSTA_ADDR RCSTA_ADDR SFR 0x000 // RCSTA -#pragma memmap TXREG_ADDR TXREG_ADDR SFR 0x000 // TXREG -#pragma memmap RCREG_ADDR RCREG_ADDR SFR 0x000 // RCREG -#pragma memmap CCPR2L_ADDR CCPR2L_ADDR SFR 0x000 // CCPR2L -#pragma memmap CCPR2H_ADDR CCPR2H_ADDR SFR 0x000 // CCPR2H -#pragma memmap CCP2CON_ADDR CCP2CON_ADDR SFR 0x000 // CCP2CON -#pragma memmap ADRESH_ADDR ADRESH_ADDR SFR 0x000 // ADRESH -#pragma memmap ADCON0_ADDR ADCON0_ADDR SFR 0x000 // ADCON0 -#pragma memmap OPTION_REG_ADDR OPTION_REG_ADDR SFR 0x000 // OPTION_REG -#pragma memmap TRISA_ADDR TRISA_ADDR SFR 0x000 // TRISA -#pragma memmap TRISB_ADDR TRISB_ADDR SFR 0x000 // TRISB -#pragma memmap TRISC_ADDR TRISC_ADDR SFR 0x000 // TRISC -#pragma memmap TRISD_ADDR TRISD_ADDR SFR 0x000 // TRISD -#pragma memmap TRISE_ADDR TRISE_ADDR SFR 0x000 // TRISE -#pragma memmap PIE1_ADDR PIE1_ADDR SFR 0x000 // PIE1 -#pragma memmap PIE2_ADDR PIE2_ADDR SFR 0x000 // PIE2 -#pragma memmap PCON_ADDR PCON_ADDR SFR 0x000 // PCON -#pragma memmap SSPCON2_ADDR SSPCON2_ADDR SFR 0x000 // SSPCON2 -#pragma memmap PR2_ADDR PR2_ADDR SFR 0x000 // PR2 -#pragma memmap SSPADD_ADDR SSPADD_ADDR SFR 0x000 // SSPADD -#pragma memmap SSPSTAT_ADDR SSPSTAT_ADDR SFR 0x000 // SSPSTAT -#pragma memmap TXSTA_ADDR TXSTA_ADDR SFR 0x000 // TXSTA -#pragma memmap SPBRG_ADDR SPBRG_ADDR SFR 0x000 // SPBRG -#pragma memmap CMCON_ADDR CMCON_ADDR SFR 0x000 // CMCON -#pragma memmap CVRCON_ADDR CVRCON_ADDR SFR 0x000 // CVRCON -#pragma memmap ADRESL_ADDR ADRESL_ADDR SFR 0x000 // ADRESL -#pragma memmap ADCON1_ADDR ADCON1_ADDR SFR 0x000 // ADCON1 -#pragma memmap EEDATA_ADDR EEDATA_ADDR SFR 0x000 // EEDATA -#pragma memmap EEADR_ADDR EEADR_ADDR SFR 0x000 // EEADR -#pragma memmap EEDATH_ADDR EEDATH_ADDR SFR 0x000 // EEDATH -#pragma memmap EEADRH_ADDR EEADRH_ADDR SFR 0x000 // EEADRH -#pragma memmap EECON1_ADDR EECON1_ADDR SFR 0x000 // EECON1 -#pragma memmap EECON2_ADDR EECON2_ADDR SFR 0x000 // EECON2 // LIST @@ -195,66 +138,66 @@ //----- Register Files------------------------------------------------------ -extern data __at (INDF_ADDR) volatile char INDF; -extern sfr __at (TMR0_ADDR) TMR0; -extern data __at (PCL_ADDR) volatile char PCL; -extern sfr __at (STATUS_ADDR) STATUS; -extern sfr __at (FSR_ADDR) FSR; -extern sfr __at (PORTA_ADDR) PORTA; -extern sfr __at (PORTB_ADDR) PORTB; -extern sfr __at (PORTC_ADDR) PORTC; -extern sfr __at (PORTD_ADDR) PORTD; -extern sfr __at (PORTE_ADDR) PORTE; -extern sfr __at (PCLATH_ADDR) PCLATH; -extern sfr __at (INTCON_ADDR) INTCON; -extern sfr __at (PIR1_ADDR) PIR1; -extern sfr __at (PIR2_ADDR) PIR2; -extern sfr __at (TMR1L_ADDR) TMR1L; -extern sfr __at (TMR1H_ADDR) TMR1H; -extern sfr __at (T1CON_ADDR) T1CON; -extern sfr __at (TMR2_ADDR) TMR2; -extern sfr __at (T2CON_ADDR) T2CON; -extern sfr __at (SSPBUF_ADDR) SSPBUF; -extern sfr __at (SSPCON_ADDR) SSPCON; -extern sfr __at (CCPR1L_ADDR) CCPR1L; -extern sfr __at (CCPR1H_ADDR) CCPR1H; -extern sfr __at (CCP1CON_ADDR) CCP1CON; -extern sfr __at (RCSTA_ADDR) RCSTA; -extern sfr __at (TXREG_ADDR) TXREG; -extern sfr __at (RCREG_ADDR) RCREG; -extern sfr __at (CCPR2L_ADDR) CCPR2L; -extern sfr __at (CCPR2H_ADDR) CCPR2H; -extern sfr __at (CCP2CON_ADDR) CCP2CON; -extern sfr __at (ADRESH_ADDR) ADRESH; -extern sfr __at (ADCON0_ADDR) ADCON0; - -extern sfr __at (OPTION_REG_ADDR) OPTION_REG; -extern sfr __at (TRISA_ADDR) TRISA; -extern sfr __at (TRISB_ADDR) TRISB; -extern sfr __at (TRISC_ADDR) TRISC; -extern sfr __at (TRISD_ADDR) TRISD; -extern sfr __at (TRISE_ADDR) TRISE; -extern sfr __at (PIE1_ADDR) PIE1; -extern sfr __at (PIE2_ADDR) PIE2; -extern sfr __at (PCON_ADDR) PCON; -extern sfr __at (SSPCON2_ADDR) SSPCON2; -extern sfr __at (PR2_ADDR) PR2; -extern sfr __at (SSPADD_ADDR) SSPADD; -extern sfr __at (SSPSTAT_ADDR) SSPSTAT; -extern sfr __at (TXSTA_ADDR) TXSTA; -extern sfr __at (SPBRG_ADDR) SPBRG; -extern sfr __at (CMCON_ADDR) CMCON; -extern sfr __at (CVRCON_ADDR) CVRCON; -extern sfr __at (ADRESL_ADDR) ADRESL; -extern sfr __at (ADCON1_ADDR) ADCON1; - -extern sfr __at (EEDATA_ADDR) EEDATA; -extern sfr __at (EEADR_ADDR) EEADR; -extern sfr __at (EEDATH_ADDR) EEDATH; -extern sfr __at (EEADRH_ADDR) EEADRH; - -extern sfr __at (EECON1_ADDR) EECON1; -extern sfr __at (EECON2_ADDR) EECON2; +extern __data __at (INDF_ADDR) volatile char INDF; +extern __sfr __at (TMR0_ADDR) TMR0; +extern __data __at (PCL_ADDR) volatile char PCL; +extern __sfr __at (STATUS_ADDR) STATUS; +extern __sfr __at (FSR_ADDR) FSR; +extern __sfr __at (PORTA_ADDR) PORTA; +extern __sfr __at (PORTB_ADDR) PORTB; +extern __sfr __at (PORTC_ADDR) PORTC; +extern __sfr __at (PORTD_ADDR) PORTD; +extern __sfr __at (PORTE_ADDR) PORTE; +extern __sfr __at (PCLATH_ADDR) PCLATH; +extern __sfr __at (INTCON_ADDR) INTCON; +extern __sfr __at (PIR1_ADDR) PIR1; +extern __sfr __at (PIR2_ADDR) PIR2; +extern __sfr __at (TMR1L_ADDR) TMR1L; +extern __sfr __at (TMR1H_ADDR) TMR1H; +extern __sfr __at (T1CON_ADDR) T1CON; +extern __sfr __at (TMR2_ADDR) TMR2; +extern __sfr __at (T2CON_ADDR) T2CON; +extern __sfr __at (SSPBUF_ADDR) SSPBUF; +extern __sfr __at (SSPCON_ADDR) SSPCON; +extern __sfr __at (CCPR1L_ADDR) CCPR1L; +extern __sfr __at (CCPR1H_ADDR) CCPR1H; +extern __sfr __at (CCP1CON_ADDR) CCP1CON; +extern __sfr __at (RCSTA_ADDR) RCSTA; +extern __sfr __at (TXREG_ADDR) TXREG; +extern __sfr __at (RCREG_ADDR) RCREG; +extern __sfr __at (CCPR2L_ADDR) CCPR2L; +extern __sfr __at (CCPR2H_ADDR) CCPR2H; +extern __sfr __at (CCP2CON_ADDR) CCP2CON; +extern __sfr __at (ADRESH_ADDR) ADRESH; +extern __sfr __at (ADCON0_ADDR) ADCON0; + +extern __sfr __at (OPTION_REG_ADDR) OPTION_REG; +extern __sfr __at (TRISA_ADDR) TRISA; +extern __sfr __at (TRISB_ADDR) TRISB; +extern __sfr __at (TRISC_ADDR) TRISC; +extern __sfr __at (TRISD_ADDR) TRISD; +extern __sfr __at (TRISE_ADDR) TRISE; +extern __sfr __at (PIE1_ADDR) PIE1; +extern __sfr __at (PIE2_ADDR) PIE2; +extern __sfr __at (PCON_ADDR) PCON; +extern __sfr __at (SSPCON2_ADDR) SSPCON2; +extern __sfr __at (PR2_ADDR) PR2; +extern __sfr __at (SSPADD_ADDR) SSPADD; +extern __sfr __at (SSPSTAT_ADDR) SSPSTAT; +extern __sfr __at (TXSTA_ADDR) TXSTA; +extern __sfr __at (SPBRG_ADDR) SPBRG; +extern __sfr __at (CMCON_ADDR) CMCON; +extern __sfr __at (CVRCON_ADDR) CVRCON; +extern __sfr __at (ADRESL_ADDR) ADRESL; +extern __sfr __at (ADCON1_ADDR) ADCON1; + +extern __sfr __at (EEDATA_ADDR) EEDATA; +extern __sfr __at (EEADR_ADDR) EEADR; +extern __sfr __at (EEDATH_ADDR) EEDATH; +extern __sfr __at (EEADRH_ADDR) EEADRH; + +extern __sfr __at (EECON1_ADDR) EECON1; +extern __sfr __at (EECON2_ADDR) EECON2; //----- STATUS Bits -------------------------------------------------------- @@ -289,7 +232,7 @@ extern sfr __at (EECON2_ADDR) EECON2; //----- ADCON0 Bits -------------------------------------------------------- -//----- OPTION Bits ----------------------------------------------------- +//----- OPTION_REG Bits ----------------------------------------------------- //----- TRISE Bits --------------------------------------------------------- @@ -721,6 +664,119 @@ extern volatile __PIR2_bits_t __at(PIR2_ADDR) PIR2_bits; #define EEIF PIR2_bits.EEIF #define CMIF PIR2_bits.CMIF +// ----- PORTA bits -------------------- +typedef union { + struct { + unsigned char RA0:1; + unsigned char RA1:1; + unsigned char RA2:1; + unsigned char RA3:1; + unsigned char RA4:1; + unsigned char RA5:1; + unsigned char :1; + unsigned char :1; + }; +} __PORTA_bits_t; +extern volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits; + +#define RA0 PORTA_bits.RA0 +#define RA1 PORTA_bits.RA1 +#define RA2 PORTA_bits.RA2 +#define RA3 PORTA_bits.RA3 +#define RA4 PORTA_bits.RA4 +#define RA5 PORTA_bits.RA5 + +// ----- PORTB bits -------------------- +typedef union { + struct { + unsigned char RB0:1; + unsigned char RB1:1; + unsigned char RB2:1; + unsigned char RB3:1; + unsigned char RB4:1; + unsigned char RB5:1; + unsigned char RB6:1; + unsigned char RB7:1; + }; +} __PORTB_bits_t; +extern volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits; + +#define RB0 PORTB_bits.RB0 +#define RB1 PORTB_bits.RB1 +#define RB2 PORTB_bits.RB2 +#define RB3 PORTB_bits.RB3 +#define RB4 PORTB_bits.RB4 +#define RB5 PORTB_bits.RB5 +#define RB6 PORTB_bits.RB6 +#define RB7 PORTB_bits.RB7 + +// ----- PORTC bits -------------------- +typedef union { + struct { + unsigned char RC0:1; + unsigned char RC1:1; + unsigned char RC2:1; + unsigned char RC3:1; + unsigned char RC4:1; + unsigned char RC5:1; + unsigned char RC6:1; + unsigned char RC7:1; + }; +} __PORTC_bits_t; +extern volatile __PORTC_bits_t __at(PORTC_ADDR) PORTC_bits; + +#define RC0 PORTC_bits.RC0 +#define RC1 PORTC_bits.RC1 +#define RC2 PORTC_bits.RC2 +#define RC3 PORTC_bits.RC3 +#define RC4 PORTC_bits.RC4 +#define RC5 PORTC_bits.RC5 +#define RC6 PORTC_bits.RC6 +#define RC7 PORTC_bits.RC7 + +// ----- PORTD bits -------------------- +typedef union { + struct { + unsigned char RD0:1; + unsigned char RD1:1; + unsigned char RD2:1; + unsigned char RD3:1; + unsigned char RD4:1; + unsigned char RD5:1; + unsigned char RD6:1; + unsigned char RD7:1; + }; +} __PORTD_bits_t; +extern volatile __PORTD_bits_t __at(PORTD_ADDR) PORTD_bits; + +#define RD0 PORTD_bits.RD0 +#define RD1 PORTD_bits.RD1 +#define RD2 PORTD_bits.RD2 +#define RD3 PORTD_bits.RD3 +#define RD4 PORTD_bits.RD4 +#define RD5 PORTD_bits.RD5 +#define RD6 PORTD_bits.RD6 +#define RD7 PORTD_bits.RD7 + +// ----- PORTE bits -------------------- +typedef union { + struct { + unsigned char RE0:1; + unsigned char RE1:1; + unsigned char RE2:1; + unsigned char :1; + unsigned char :1; + unsigned char :1; + unsigned char :1; + unsigned char :1; + }; +} __PORTE_bits_t; +extern volatile __PORTE_bits_t __at(PORTE_ADDR) PORTE_bits; + +#define RE0 PORTE_bits.RE0 +#define RE1 PORTE_bits.RE1 +#define RE2 PORTE_bits.RE2 + // ----- RCSTA bits -------------------- typedef union { struct { @@ -1004,6 +1060,100 @@ extern volatile __T2CON_bits_t __at(T2CON_ADDR) T2CON_bits; #define TOUTPS2 T2CON_bits.TOUTPS2 #define TOUTPS3 T2CON_bits.TOUTPS3 +// ----- TRISA bits -------------------- +typedef union { + struct { + unsigned char TRISA0:1; + unsigned char TRISA1:1; + unsigned char TRISA2:1; + unsigned char TRISA3:1; + unsigned char TRISA4:1; + unsigned char TRISA5:1; + unsigned char :1; + unsigned char :1; + }; +} __TRISA_bits_t; +extern volatile __TRISA_bits_t __at(TRISA_ADDR) TRISA_bits; + +#define TRISA0 TRISA_bits.TRISA0 +#define TRISA1 TRISA_bits.TRISA1 +#define TRISA2 TRISA_bits.TRISA2 +#define TRISA3 TRISA_bits.TRISA3 +#define TRISA4 TRISA_bits.TRISA4 +#define TRISA5 TRISA_bits.TRISA5 + +// ----- TRISB bits -------------------- +typedef union { + struct { + unsigned char TRISB0:1; + unsigned char TRISB1:1; + unsigned char TRISB2:1; + unsigned char TRISB3:1; + unsigned char TRISB4:1; + unsigned char TRISB5:1; + unsigned char TRISB6:1; + unsigned char TRISB7:1; + }; +} __TRISB_bits_t; +extern volatile __TRISB_bits_t __at(TRISB_ADDR) TRISB_bits; + +#define TRISB0 TRISB_bits.TRISB0 +#define TRISB1 TRISB_bits.TRISB1 +#define TRISB2 TRISB_bits.TRISB2 +#define TRISB3 TRISB_bits.TRISB3 +#define TRISB4 TRISB_bits.TRISB4 +#define TRISB5 TRISB_bits.TRISB5 +#define TRISB6 TRISB_bits.TRISB6 +#define TRISB7 TRISB_bits.TRISB7 + +// ----- TRISC bits -------------------- +typedef union { + struct { + unsigned char TRISC0:1; + unsigned char TRISC1:1; + unsigned char TRISC2:1; + unsigned char TRISC3:1; + unsigned char TRISC4:1; + unsigned char TRISC5:1; + unsigned char TRISC6:1; + unsigned char TRISC7:1; + }; +} __TRISC_bits_t; +extern volatile __TRISC_bits_t __at(TRISC_ADDR) TRISC_bits; + +#define TRISC0 TRISC_bits.TRISC0 +#define TRISC1 TRISC_bits.TRISC1 +#define TRISC2 TRISC_bits.TRISC2 +#define TRISC3 TRISC_bits.TRISC3 +#define TRISC4 TRISC_bits.TRISC4 +#define TRISC5 TRISC_bits.TRISC5 +#define TRISC6 TRISC_bits.TRISC6 +#define TRISC7 TRISC_bits.TRISC7 + +// ----- TRISD bits -------------------- +typedef union { + struct { + unsigned char TRISD0:1; + unsigned char TRISD1:1; + unsigned char TRISD2:1; + unsigned char TRISD3:1; + unsigned char TRISD4:1; + unsigned char TRISD5:1; + unsigned char TRISD6:1; + unsigned char TRISD7:1; + }; +} __TRISD_bits_t; +extern volatile __TRISD_bits_t __at(TRISD_ADDR) TRISD_bits; + +#define TRISD0 TRISD_bits.TRISD0 +#define TRISD1 TRISD_bits.TRISD1 +#define TRISD2 TRISD_bits.TRISD2 +#define TRISD3 TRISD_bits.TRISD3 +#define TRISD4 TRISD_bits.TRISD4 +#define TRISD5 TRISD_bits.TRISD5 +#define TRISD6 TRISD_bits.TRISD6 +#define TRISD7 TRISD_bits.TRISD7 + // ----- TRISE bits -------------------- typedef union { struct {