2 * This declarations of the PIC18LF1230 MCU.
4 * This file is part of the GNU PIC library for SDCC, originally
5 * created by Molnar Karoly <molnarkaroly@users.sf.net> 2016.
7 * This file is generated automatically by the cinc2h.pl, 2016-04-13 17:23:59 UTC.
9 * SDCC is licensed under the GNU Public license (GPL) v2. Note that
10 * this license covers the code to the compiler and other executables,
11 * but explicitly does not cover any code or objects generated by sdcc.
13 * For pic device libraries and header files which are derived from
14 * Microchip header (.inc) and linker script (.lkr) files Microchip
15 * requires that "The header files should state that they are only to be
16 * used with authentic Microchip devices" which makes them incompatible
17 * with the GPL. Pic device libraries and header files are located at
18 * non-free/lib and non-free/include directories respectively.
19 * Sdcc should be run with the --use-non-free command line option in
20 * order to include non-free header files and libraries.
22 * See http://sdcc.sourceforge.net/ for the latest information on sdcc.
25 #ifndef __PIC18LF1230_H__
26 #define __PIC18LF1230_H__
28 //==============================================================================
30 //==============================================================================
32 // Register Definitions
34 //==============================================================================
37 //==============================================================================
40 extern __at(0x0F80) __sfr PORTA
;
75 unsigned NOT_MCLR
: 1;
129 extern __at(0x0F80) volatile __PORTAbits_t PORTAbits
;
131 #define _PORTA_RA0 0x01
132 #define _PORTA_AN0 0x01
133 #define _PORTA_INT0 0x01
134 #define _PORTA_KBI0 0x01
135 #define _PORTA_CMP0 0x01
136 #define _PORTA_RA1 0x02
137 #define _PORTA_AN1 0x02
138 #define _PORTA_INT1 0x02
139 #define _PORTA_KBI1 0x02
140 #define _PORTA_RA2 0x04
141 #define _PORTA_TX 0x04
142 #define _PORTA_CK 0x04
143 #define _PORTA_RA3 0x08
144 #define _PORTA_RX 0x08
145 #define _PORTA_RA4 0x10
146 #define _PORTA_AN2 0x10
147 #define _PORTA_T0CKI 0x10
148 #define _PORTA_VREFP 0x10
149 #define _PORTA_RA5 0x20
150 #define _PORTA_MCLR 0x20
151 #define _PORTA_NOT_MCLR 0x20
152 #define _PORTA_RA6 0x40
153 #define _PORTA_OSC2 0x40
154 #define _PORTA_CLKO 0x40
155 #define _PORTA_T1OSO 0x40
156 #define _PORTA_AN3 0x40
157 #define _PORTA_T1CKI 0x40
158 #define _PORTA_RA7 0x80
159 #define _PORTA_OSC1 0x80
160 #define _PORTA_CLKI 0x80
161 #define _PORTA_T1OSI 0x80
163 //==============================================================================
166 //==============================================================================
169 extern __at(0x0F81) __sfr PORTB
;
246 extern __at(0x0F81) volatile __PORTBbits_t PORTBbits
;
248 #define _PORTB_RB0 0x01
249 #define _PORTB_PWM0 0x01
250 #define _PORTB_RB1 0x02
251 #define _PORTB_PWM1 0x02
252 #define _PORTB_RB2 0x04
253 #define _PORTB_INT2 0x04
254 #define _PORTB_KBI2 0x04
255 #define _PORTB_CMP2 0x04
256 #define _PORTB_T1OSO 0x04
257 #define _PORTB_T1CKI 0x04
258 #define _PORTB_RB3 0x08
259 #define _PORTB_INT3 0x08
260 #define _PORTB_KBI3 0x08
261 #define _PORTB_CMP1 0x08
262 #define _PORTB_T1OSI 0x08
263 #define _PORTB_RB4 0x10
264 #define _PORTB_PWM2 0x10
265 #define _PORTB_RB5 0x20
266 #define _PORTB_PWM3 0x20
267 #define _PORTB_RB6 0x40
268 #define _PORTB_PWM4 0x40
269 #define _PORTB_PGC 0x40
270 #define _PORTB_RB7 0x80
271 #define _PORTB_PWM5 0x80
272 #define _PORTB_PGD 0x80
274 //==============================================================================
277 //==============================================================================
280 extern __at(0x0F82) __sfr OVDCONS
;
303 extern __at(0x0F82) volatile __OVDCONSbits_t OVDCONSbits
;
312 //==============================================================================
315 //==============================================================================
318 extern __at(0x0F83) __sfr OVDCOND
;
341 extern __at(0x0F83) volatile __OVDCONDbits_t OVDCONDbits
;
350 //==============================================================================
353 //==============================================================================
356 extern __at(0x0F84) __sfr DTCON
;
385 extern __at(0x0F84) volatile __DTCONbits_t DTCONbits
;
396 //==============================================================================
399 //==============================================================================
402 extern __at(0x0F85) __sfr PWMCON1
;
411 unsigned SEVTDIR
: 1;
412 unsigned SEVOPS0
: 1;
413 unsigned SEVOPS1
: 1;
414 unsigned SEVOPS2
: 1;
415 unsigned SEVOPS3
: 1;
425 extern __at(0x0F85) volatile __PWMCON1bits_t PWMCON1bits
;
429 #define _SEVTDIR 0x08
430 #define _SEVOPS0 0x10
431 #define _SEVOPS1 0x20
432 #define _SEVOPS2 0x40
433 #define _SEVOPS3 0x80
435 //==============================================================================
438 //==============================================================================
441 extern __at(0x0F86) __sfr PWMCON0
;
471 extern __at(0x0F86) volatile __PWMCON0bits_t PWMCON0bits
;
480 //==============================================================================
482 extern __at(0x0F87) __sfr SEVTCMPH
;
483 extern __at(0x0F88) __sfr SEVTCMPL
;
485 //==============================================================================
488 extern __at(0x0F89) __sfr LATA
;
502 extern __at(0x0F89) volatile __LATAbits_t LATAbits
;
513 //==============================================================================
516 //==============================================================================
519 extern __at(0x0F8A) __sfr LATB
;
533 extern __at(0x0F8A) volatile __LATBbits_t LATBbits
;
544 //==============================================================================
547 //==============================================================================
550 extern __at(0x0F8B) __sfr FLTCONFIG
;
555 unsigned FLTAMOD
: 1;
564 extern __at(0x0F8B) volatile __FLTCONFIGbits_t FLTCONFIGbits
;
567 #define _FLTAMOD 0x02
571 //==============================================================================
573 extern __at(0x0F8C) __sfr PDC2H
;
574 extern __at(0x0F8D) __sfr PDC2L
;
575 extern __at(0x0F8E) __sfr PDC1H
;
576 extern __at(0x0F8F) __sfr PDC1L
;
577 extern __at(0x0F90) __sfr PDC0H
;
578 extern __at(0x0F91) __sfr PDC0L
;
580 //==============================================================================
583 extern __at(0x0F92) __sfr DDRA
;
612 extern __at(0x0F92) volatile __DDRAbits_t DDRAbits
;
631 //==============================================================================
634 //==============================================================================
637 extern __at(0x0F92) __sfr TRISA
;
666 extern __at(0x0F92) volatile __TRISAbits_t TRISAbits
;
668 #define _TRISA_TRISA0 0x01
669 #define _TRISA_RA0 0x01
670 #define _TRISA_TRISA1 0x02
671 #define _TRISA_RA1 0x02
672 #define _TRISA_TRISA2 0x04
673 #define _TRISA_RA2 0x04
674 #define _TRISA_TRISA3 0x08
675 #define _TRISA_RA3 0x08
676 #define _TRISA_TRISA4 0x10
677 #define _TRISA_RA4 0x10
678 #define _TRISA_TRISA5 0x20
679 #define _TRISA_RA5 0x20
680 #define _TRISA_TRISA6 0x40
681 #define _TRISA_RA6 0x40
682 #define _TRISA_TRISA7 0x80
683 #define _TRISA_RA7 0x80
685 //==============================================================================
688 //==============================================================================
691 extern __at(0x0F93) __sfr DDRB
;
720 extern __at(0x0F93) volatile __DDRBbits_t DDRBbits
;
739 //==============================================================================
742 //==============================================================================
745 extern __at(0x0F93) __sfr TRISB
;
774 extern __at(0x0F93) volatile __TRISBbits_t TRISBbits
;
776 #define _TRISB_TRISB0 0x01
777 #define _TRISB_RB0 0x01
778 #define _TRISB_TRISB1 0x02
779 #define _TRISB_RB1 0x02
780 #define _TRISB_TRISB2 0x04
781 #define _TRISB_RB2 0x04
782 #define _TRISB_TRISB3 0x08
783 #define _TRISB_RB3 0x08
784 #define _TRISB_TRISB4 0x10
785 #define _TRISB_RB4 0x10
786 #define _TRISB_TRISB5 0x20
787 #define _TRISB_RB5 0x20
788 #define _TRISB_TRISB6 0x40
789 #define _TRISB_RB6 0x40
790 #define _TRISB_TRISB7 0x80
791 #define _TRISB_RB7 0x80
793 //==============================================================================
795 extern __at(0x0F95) __sfr PTPERH
;
796 extern __at(0x0F96) __sfr PTPERL
;
797 extern __at(0x0F97) __sfr PTMRH
;
798 extern __at(0x0F98) __sfr PTMRL
;
800 //==============================================================================
803 extern __at(0x0F99) __sfr PTCON1
;
817 extern __at(0x0F99) volatile __PTCON1bits_t PTCON1bits
;
822 //==============================================================================
825 //==============================================================================
828 extern __at(0x0F9A) __sfr PTCON0
;
836 unsigned PTCKPS0
: 1;
837 unsigned PTCKPS1
: 1;
864 extern __at(0x0F9A) volatile __PTCON0bits_t PTCON0bits
;
868 #define _PTCKPS0 0x04
869 #define _PTCKPS1 0x08
875 //==============================================================================
878 //==============================================================================
881 extern __at(0x0F9B) __sfr OSCTUNE
;
904 extern __at(0x0F9B) volatile __OSCTUNEbits_t OSCTUNEbits
;
914 //==============================================================================
917 //==============================================================================
920 extern __at(0x0F9D) __sfr PIE1
;
934 extern __at(0x0F9D) volatile __PIE1bits_t PIE1bits
;
944 //==============================================================================
947 //==============================================================================
950 extern __at(0x0F9E) __sfr PIR1
;
964 extern __at(0x0F9E) volatile __PIR1bits_t PIR1bits
;
974 //==============================================================================
977 //==============================================================================
980 extern __at(0x0F9F) __sfr IPR1
;
994 extern __at(0x0F9F) volatile __IPR1bits_t IPR1bits
;
1004 //==============================================================================
1007 //==============================================================================
1010 extern __at(0x0FA0) __sfr PIE2
;
1021 unsigned OSCFIE
: 1;
1024 extern __at(0x0FA0) volatile __PIE2bits_t PIE2bits
;
1028 #define _OSCFIE 0x80
1030 //==============================================================================
1033 //==============================================================================
1036 extern __at(0x0FA1) __sfr PIR2
;
1047 unsigned OSCFIF
: 1;
1050 extern __at(0x0FA1) volatile __PIR2bits_t PIR2bits
;
1054 #define _OSCFIF 0x80
1056 //==============================================================================
1059 //==============================================================================
1062 extern __at(0x0FA2) __sfr IPR2
;
1073 unsigned OSCFIP
: 1;
1076 extern __at(0x0FA2) volatile __IPR2bits_t IPR2bits
;
1080 #define _OSCFIP 0x80
1082 //==============================================================================
1085 //==============================================================================
1088 extern __at(0x0FA3) __sfr PIE3
;
1102 extern __at(0x0FA3) volatile __PIE3bits_t PIE3bits
;
1106 //==============================================================================
1109 //==============================================================================
1112 extern __at(0x0FA4) __sfr PIR3
;
1126 extern __at(0x0FA4) volatile __PIR3bits_t PIR3bits
;
1130 //==============================================================================
1133 //==============================================================================
1136 extern __at(0x0FA5) __sfr IPR3
;
1150 extern __at(0x0FA5) volatile __IPR3bits_t IPR3bits
;
1154 //==============================================================================
1157 //==============================================================================
1160 extern __at(0x0FA6) __sfr EECON1
;
1174 extern __at(0x0FA6) volatile __EECON1bits_t EECON1bits
;
1184 //==============================================================================
1186 extern __at(0x0FA7) __sfr EECON2
;
1187 extern __at(0x0FA8) __sfr EEDATA
;
1188 extern __at(0x0FA9) __sfr EEADR
;
1190 //==============================================================================
1193 extern __at(0x0FAB) __sfr RCSTA
;
1222 extern __at(0x0FAB) volatile __RCSTAbits_t RCSTAbits
;
1234 //==============================================================================
1237 //==============================================================================
1240 extern __at(0x0FAC) __sfr TXSTA
;
1254 extern __at(0x0FAC) volatile __TXSTAbits_t TXSTAbits
;
1265 //==============================================================================
1267 extern __at(0x0FAD) __sfr TXREG
;
1268 extern __at(0x0FAE) __sfr RCREG
;
1269 extern __at(0x0FAF) __sfr SPBRG
;
1270 extern __at(0x0FB0) __sfr SPBRGH
;
1272 //==============================================================================
1275 extern __at(0x0FB4) __sfr CMCON
;
1298 extern __at(0x0FB4) volatile __CMCONbits_t CMCONbits
;
1307 //==============================================================================
1310 //==============================================================================
1313 extern __at(0x0FB5) __sfr CVRCON
;
1348 extern __at(0x0FB5) volatile __CVRCONbits_t CVRCONbits
;
1359 //==============================================================================
1362 //==============================================================================
1365 extern __at(0x0FB8) __sfr BAUDCON
;
1378 unsigned ABDOVF
: 1;
1394 extern __at(0x0FB8) volatile __BAUDCONbits_t BAUDCONbits
;
1404 #define _ABDOVF 0x80
1406 //==============================================================================
1409 //==============================================================================
1412 extern __at(0x0FB8) __sfr BAUDCTL
;
1425 unsigned ABDOVF
: 1;
1441 extern __at(0x0FB8) volatile __BAUDCTLbits_t BAUDCTLbits
;
1443 #define _BAUDCTL_ABDEN 0x01
1444 #define _BAUDCTL_WUE 0x02
1445 #define _BAUDCTL_BRG16 0x08
1446 #define _BAUDCTL_TXCKP 0x10
1447 #define _BAUDCTL_SCKP 0x10
1448 #define _BAUDCTL_RXDTP 0x20
1449 #define _BAUDCTL_RCIDL 0x40
1450 #define _BAUDCTL_RCMT 0x40
1451 #define _BAUDCTL_ABDOVF 0x80
1453 //==============================================================================
1456 //==============================================================================
1459 extern __at(0x0FC0) __sfr ADCON2
;
1489 extern __at(0x0FC0) volatile __ADCON2bits_t ADCON2bits
;
1499 //==============================================================================
1502 //==============================================================================
1505 extern __at(0x0FC1) __sfr ADCON1
;
1540 extern __at(0x0FC1) volatile __ADCON1bits_t ADCON1bits
;
1549 //==============================================================================
1552 //==============================================================================
1555 extern __at(0x0FC2) __sfr ADCON0
;
1562 unsigned GO_NOT_DONE
: 1;
1568 unsigned SEVTEN
: 1;
1598 unsigned NOT_DONE
: 1;
1610 unsigned GO_DONE
: 1;
1627 extern __at(0x0FC2) volatile __ADCON0bits_t ADCON0bits
;
1630 #define _GO_NOT_DONE 0x02
1633 #define _NOT_DONE 0x02
1634 #define _GO_DONE 0x02
1637 #define _SEVTEN 0x80
1639 //==============================================================================
1641 extern __at(0x0FC3) __sfr ADRES
;
1642 extern __at(0x0FC3) __sfr ADRESL
;
1643 extern __at(0x0FC4) __sfr ADRESH
;
1645 //==============================================================================
1648 extern __at(0x0FCD) __sfr T1CON
;
1654 unsigned TMR1ON
: 1;
1655 unsigned TMR1CS
: 1;
1656 unsigned NOT_T1SYNC
: 1;
1657 unsigned T1OSCEN
: 1;
1658 unsigned T1CKPS0
: 1;
1659 unsigned T1CKPS1
: 1;
1668 unsigned T1SYNC
: 1;
1679 unsigned T1CKPS
: 2;
1684 extern __at(0x0FCD) volatile __T1CONbits_t T1CONbits
;
1686 #define _TMR1ON 0x01
1687 #define _TMR1CS 0x02
1688 #define _NOT_T1SYNC 0x04
1689 #define _T1SYNC 0x04
1690 #define _T1OSCEN 0x08
1691 #define _T1CKPS0 0x10
1692 #define _T1CKPS1 0x20
1696 //==============================================================================
1698 extern __at(0x0FCE) __sfr TMR1
;
1699 extern __at(0x0FCE) __sfr TMR1L
;
1700 extern __at(0x0FCF) __sfr TMR1H
;
1702 //==============================================================================
1705 extern __at(0x0FD0) __sfr RCON
;
1711 unsigned NOT_BOR
: 1;
1712 unsigned NOT_POR
: 1;
1713 unsigned NOT_PD
: 1;
1714 unsigned NOT_TO
: 1;
1715 unsigned NOT_RI
: 1;
1717 unsigned SBOREN
: 1;
1734 extern __at(0x0FD0) volatile __RCONbits_t RCONbits
;
1736 #define _NOT_BOR 0x01
1738 #define _NOT_POR 0x02
1740 #define _NOT_PD 0x04
1742 #define _NOT_TO 0x08
1744 #define _NOT_RI 0x10
1746 #define _SBOREN 0x40
1749 //==============================================================================
1752 //==============================================================================
1755 extern __at(0x0FD1) __sfr WDTCON
;
1761 unsigned SWDTEN
: 1;
1784 extern __at(0x0FD1) volatile __WDTCONbits_t WDTCONbits
;
1786 #define _SWDTEN 0x01
1789 //==============================================================================
1792 //==============================================================================
1795 extern __at(0x0FD2) __sfr LVDCON
;
1830 extern __at(0x0FD2) volatile __LVDCONbits_t LVDCONbits
;
1840 //==============================================================================
1843 //==============================================================================
1846 extern __at(0x0FD3) __sfr OSCCON
;
1888 extern __at(0x0FD3) volatile __OSCCONbits_t OSCCONbits
;
1900 //==============================================================================
1903 //==============================================================================
1906 extern __at(0x0FD5) __sfr T0CON
;
1918 unsigned T016BIT
: 1;
1919 unsigned TMR0ON
: 1;
1930 unsigned T08BIT
: 1;
1941 extern __at(0x0FD5) volatile __T0CONbits_t T0CONbits
;
1949 #define _T016BIT 0x40
1950 #define _T08BIT 0x40
1951 #define _TMR0ON 0x80
1953 //==============================================================================
1955 extern __at(0x0FD6) __sfr TMR0
;
1956 extern __at(0x0FD6) __sfr TMR0L
;
1957 extern __at(0x0FD7) __sfr TMR0H
;
1959 //==============================================================================
1962 extern __at(0x0FD8) __sfr STATUS
;
1976 extern __at(0x0FD8) volatile __STATUSbits_t STATUSbits
;
1984 //==============================================================================
1986 extern __at(0x0FD9) __sfr FSR2L
;
1987 extern __at(0x0FDA) __sfr FSR2H
;
1988 extern __at(0x0FDB) __sfr PLUSW2
;
1989 extern __at(0x0FDC) __sfr PREINC2
;
1990 extern __at(0x0FDD) __sfr POSTDEC2
;
1991 extern __at(0x0FDE) __sfr POSTINC2
;
1992 extern __at(0x0FDF) __sfr INDF2
;
1993 extern __at(0x0FE0) __sfr BSR
;
1994 extern __at(0x0FE1) __sfr FSR1L
;
1995 extern __at(0x0FE2) __sfr FSR1H
;
1996 extern __at(0x0FE3) __sfr PLUSW1
;
1997 extern __at(0x0FE4) __sfr PREINC1
;
1998 extern __at(0x0FE5) __sfr POSTDEC1
;
1999 extern __at(0x0FE6) __sfr POSTINC1
;
2000 extern __at(0x0FE7) __sfr INDF1
;
2001 extern __at(0x0FE8) __sfr WREG
;
2002 extern __at(0x0FE9) __sfr FSR0L
;
2003 extern __at(0x0FEA) __sfr FSR0H
;
2004 extern __at(0x0FEB) __sfr PLUSW0
;
2005 extern __at(0x0FEC) __sfr PREINC0
;
2006 extern __at(0x0FED) __sfr POSTDEC0
;
2007 extern __at(0x0FEE) __sfr POSTINC0
;
2008 extern __at(0x0FEF) __sfr INDF0
;
2010 //==============================================================================
2013 extern __at(0x0FF0) __sfr INTCON3
;
2019 unsigned INT1IF
: 1;
2020 unsigned INT2IF
: 1;
2021 unsigned INT3IF
: 1;
2022 unsigned INT1IE
: 1;
2023 unsigned INT2IE
: 1;
2024 unsigned INT3IE
: 1;
2025 unsigned INT1IP
: 1;
2026 unsigned INT2IP
: 1;
2042 extern __at(0x0FF0) volatile __INTCON3bits_t INTCON3bits
;
2044 #define _INT1IF 0x01
2046 #define _INT2IF 0x02
2048 #define _INT3IF 0x04
2050 #define _INT1IE 0x08
2052 #define _INT2IE 0x10
2054 #define _INT3IE 0x20
2056 #define _INT1IP 0x40
2058 #define _INT2IP 0x80
2061 //==============================================================================
2064 //==============================================================================
2067 extern __at(0x0FF1) __sfr INTCON2
;
2074 unsigned INT3IP
: 1;
2075 unsigned TMR0IP
: 1;
2076 unsigned INTEDG3
: 1;
2077 unsigned INTEDG2
: 1;
2078 unsigned INTEDG1
: 1;
2079 unsigned INTEDG0
: 1;
2080 unsigned NOT_RBPU
: 1;
2096 extern __at(0x0FF1) volatile __INTCON2bits_t INTCON2bits
;
2099 #define _INT3IP 0x02
2101 #define _TMR0IP 0x04
2102 #define _INTEDG3 0x08
2103 #define _INTEDG2 0x10
2104 #define _INTEDG1 0x20
2105 #define _INTEDG0 0x40
2106 #define _NOT_RBPU 0x80
2109 //==============================================================================
2112 //==============================================================================
2115 extern __at(0x0FF2) __sfr INTCON
;
2122 unsigned INT0IF
: 1;
2123 unsigned TMR0IF
: 1;
2125 unsigned INT0IE
: 1;
2126 unsigned TMR0IE
: 1;
2127 unsigned PEIE_GIEL
: 1;
2128 unsigned GIE_GIEH
: 1;
2156 extern __at(0x0FF2) volatile __INTCONbits_t INTCONbits
;
2159 #define _INT0IF 0x02
2161 #define _TMR0IF 0x04
2164 #define _INT0IE 0x10
2166 #define _TMR0IE 0x20
2168 #define _PEIE_GIEL 0x40
2171 #define _GIE_GIEH 0x80
2175 //==============================================================================
2177 extern __at(0x0FF3) __sfr PROD
;
2178 extern __at(0x0FF3) __sfr PRODL
;
2179 extern __at(0x0FF4) __sfr PRODH
;
2180 extern __at(0x0FF5) __sfr TABLAT
;
2181 extern __at(0x0FF6) __sfr TBLPTR
;
2182 extern __at(0x0FF6) __sfr TBLPTRL
;
2183 extern __at(0x0FF7) __sfr TBLPTRH
;
2184 extern __at(0x0FF8) __sfr TBLPTRU
;
2185 extern __at(0x0FF9) __sfr PC
;
2186 extern __at(0x0FF9) __sfr PCL
;
2187 extern __at(0x0FFA) __sfr PCLATH
;
2188 extern __at(0x0FFB) __sfr PCLATU
;
2190 //==============================================================================
2193 extern __at(0x0FFC) __sfr STKPTR
;
2205 unsigned STKUNF
: 1;
2206 unsigned STKFUL
: 1;
2218 unsigned STKOVF
: 1;
2228 extern __at(0x0FFC) volatile __STKPTRbits_t STKPTRbits
;
2235 #define _STKUNF 0x40
2236 #define _STKFUL 0x80
2237 #define _STKOVF 0x80
2239 //==============================================================================
2241 extern __at(0x0FFD) __sfr TOS
;
2242 extern __at(0x0FFD) __sfr TOSL
;
2243 extern __at(0x0FFE) __sfr TOSH
;
2244 extern __at(0x0FFF) __sfr TOSU
;
2246 //==============================================================================
2248 // Configuration Bits
2250 //==============================================================================
2252 #define __CONFIG1H 0x300001
2253 #define __CONFIG2L 0x300002
2254 #define __CONFIG2H 0x300003
2255 #define __CONFIG3L 0x300004
2256 #define __CONFIG3H 0x300005
2257 #define __CONFIG4L 0x300006
2258 #define __CONFIG5L 0x300008
2259 #define __CONFIG5H 0x300009
2260 #define __CONFIG6L 0x30000A
2261 #define __CONFIG6H 0x30000B
2262 #define __CONFIG7L 0x30000C
2263 #define __CONFIG7H 0x30000D
2265 //----------------------------- CONFIG1H Options -------------------------------
2267 #define _OSC_LP_1H 0xF0 // LP Oscillator.
2268 #define _OSC_XT_1H 0xF1 // XT Oscillator.
2269 #define _OSC_HS_1H 0xF2 // HS Oscillator.
2270 #define _OSC_RC_1H 0xF3 // External RC oscillator, CLKO function on RA6.
2271 #define _OSC_EC_1H 0xF4 // EC oscillator, CLKO function on RA6.
2272 #define _OSC_ECIO_1H 0xF5 // EC oscillator, port function on RA6.
2273 #define _OSC_HSPLL_1H 0xF6 // HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1).
2274 #define _OSC_RCIO_1H 0xF7 // External RC oscillator, port function on RA6.
2275 #define _OSC_INTIO2_1H 0xF8 // Internal oscillator, port function on RA6 and RA7.
2276 #define _OSC_INTIO1_1H 0xF9 // Internal oscillator, CLKO function on RA6, port function on RA7.
2277 #define _FCMEN_OFF_1H 0xBF // Fail-Safe Clock Monitor disabled.
2278 #define _FCMEN_ON_1H 0xFF // Fail-Safe Clock Monitor enabled.
2279 #define _IESO_OFF_1H 0x7F // Oscillator Switchover mode disabled.
2280 #define _IESO_ON_1H 0xFF // Oscillator Switchover mode enabled.
2282 //----------------------------- CONFIG2L Options -------------------------------
2284 #define _PWRT_ON_2L 0xFE // PWRT enabled.
2285 #define _PWRT_OFF_2L 0xFF // PWRT disabled.
2286 #define _BOR_OFF_2L 0xF9 // Brown-out Reset disabled in hardware and software.
2287 #define _BOR_SBORENCTRL_2L 0xFB // Brown-out Reset enabled and controlled by software (SBOREN is enabled).
2288 #define _BOR_BOACTIVE_2L 0xFD // Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled).
2289 #define _BOR_BOHW_2L 0xFF // Brown-out Reset enabled in hardware only (SBOREN is disabled).
2290 #define _BORV_0_2L 0xE7 // Maximum setting.
2291 #define _BORV_1_2L 0xEF
2292 #define _BORV_2_2L 0xF7
2293 #define _BORV_3_2L 0xFF // Minimum setting.
2295 //----------------------------- CONFIG2H Options -------------------------------
2297 #define _WDT_OFF_2H 0xFE // WDT disabled (control is placed on the SWDTEN bit).
2298 #define _WDT_ON_2H 0xFF // WDT enabled.
2299 #define _WDTPS_1_2H 0xE1 // 1:1.
2300 #define _WDTPS_2_2H 0xE3 // 1:2.
2301 #define _WDTPS_4_2H 0xE5 // 1:4.
2302 #define _WDTPS_8_2H 0xE7 // 1:8.
2303 #define _WDTPS_16_2H 0xE9 // 1:16.
2304 #define _WDTPS_32_2H 0xEB // 1:32.
2305 #define _WDTPS_64_2H 0xED // 1:64.
2306 #define _WDTPS_128_2H 0xEF // 1:128.
2307 #define _WDTPS_256_2H 0xF1 // 1:256.
2308 #define _WDTPS_512_2H 0xF3 // 1:512.
2309 #define _WDTPS_1024_2H 0xF5 // 1:1024.
2310 #define _WDTPS_2048_2H 0xF7 // 1:2048.
2311 #define _WDTPS_4096_2H 0xF9 // 1:4096.
2312 #define _WDTPS_8192_2H 0xFB // 1:8192.
2313 #define _WDTPS_16384_2H 0xFD // 1:16384.
2314 #define _WDTPS_32768_2H 0xFF // 1:32768.
2316 //----------------------------- CONFIG3L Options -------------------------------
2318 #define _PWMPIN_ON_3L 0xFD // PWM outputs drive active states upon Reset.
2319 #define _PWMPIN_OFF_3L 0xFF // PWM outputs disabled upon Reset.
2320 #define _LPOL_LOW_3L 0xFB // PWM0, PWM2 and PWM4 are active-low.
2321 #define _LPOL_HIGH_3L 0xFF // PWM0, PWM2 and PWM4 are active-high (default).
2322 #define _HPOL_LOW_3L 0xF7 // PWM1, PWM3 and PWM5 are active-low.
2323 #define _HPOL_HIGH_3L 0xFF // PWM1, PWM3 and PWM5 are active-high (default).
2325 //----------------------------- CONFIG3H Options -------------------------------
2327 #define _FLTAMX_RA7_3H 0xFE // FLTA input is muxed onto RA7.
2328 #define _FLTAMX_RA5_3H 0xFF // FLTA input is muxed onto RA5.
2329 #define _T1OSCMX_LOW_3H 0xF7 // T1OSO/T1CKI pin resides on RB2.
2330 #define _T1OSCMX_HIGH_3H 0xFF // T1OSO/T1CKI pin resides on RA6.
2331 #define _MCLRE_OFF_3H 0x7F // RA5 input pin enabled, MCLR pin disabled.
2332 #define _MCLRE_ON_3H 0xFF // MCLR pin enabled, RA5 input pin disabled.
2334 //----------------------------- CONFIG4L Options -------------------------------
2336 #define _STVREN_OFF_4L 0xFE // Reset on stack overflow/underflow disabled.
2337 #define _STVREN_ON_4L 0xFF // Reset on stack overflow/underflow enabled.
2338 #define _BBSIZ_BB256_4L 0xCF // 256 Words (512 Bytes) Boot Block size.
2339 #define _BBSIZ_BB512_4L 0xFF // 512 Words (1024 Bytes) Boot Block size.
2340 #define _XINST_OFF_4L 0xBF // Instruction set extension and Indexed Addressing mode disabled.
2341 #define _XINST_ON_4L 0xFF // Instruction set extension and Indexed Addressing mode enabled.
2342 #define _DEBUG_ON_4L 0x7F // Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug.
2343 #define _DEBUG_OFF_4L 0xFF // Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins.
2345 //----------------------------- CONFIG5L Options -------------------------------
2347 #define _CP0_ON_5L 0xFE // Block 0 is code-protected.
2348 #define _CP0_OFF_5L 0xFF // Block 0 is not code-protected.
2349 #define _CP1_ON_5L 0xFD // Block 1 is code-protected.
2350 #define _CP1_OFF_5L 0xFF // Block 1 is not code-protected.
2352 //----------------------------- CONFIG5H Options -------------------------------
2354 #define _CPB_ON_5H 0xBF // Boot Block is code-protected.
2355 #define _CPB_OFF_5H 0xFF // Boot Block is not code-protected.
2356 #define _CPD_ON_5H 0x7F // Data EEPROM is code-protected.
2357 #define _CPD_OFF_5H 0xFF // Data EEPROM is not code-protected.
2359 //----------------------------- CONFIG6L Options -------------------------------
2361 #define _WRT0_ON_6L 0xFE // Block 0 is write-protected.
2362 #define _WRT0_OFF_6L 0xFF // Block 0 is not write-protected.
2363 #define _WRT1_ON_6L 0xFD // Block 1 is write-protected.
2364 #define _WRT1_OFF_6L 0xFF // Block 1 is not write-protected.
2366 //----------------------------- CONFIG6H Options -------------------------------
2368 #define _WRTC_ON_6H 0xDF // Configuration registers are write-protected.
2369 #define _WRTC_OFF_6H 0xFF // Configuration registers are not write-protected.
2370 #define _WRTB_ON_6H 0xBF // Boot Block is write-protected.
2371 #define _WRTB_OFF_6H 0xFF // Boot Block is not write-protected.
2372 #define _WRTD_ON_6H 0x7F // Data EEPROM is write-protected.
2373 #define _WRTD_OFF_6H 0xFF // Data EEPROM is not write-protected.
2375 //----------------------------- CONFIG7L Options -------------------------------
2377 #define _EBTR0_ON_7L 0xFE // Block 0 is protected from table reads executed in other blocks.
2378 #define _EBTR0_OFF_7L 0xFF // Block 0 is not protected from table reads executed in other blocks.
2379 #define _EBTR1_ON_7L 0xFD // Block 1 is protected from table reads executed in other blocks.
2380 #define _EBTR1_OFF_7L 0xFF // Block 1 is not protected from table reads executed in other blocks.
2382 //----------------------------- CONFIG7H Options -------------------------------
2384 #define _EBTRB_ON_7H 0xBF // Boot Block is protected from table reads executed in other blocks.
2385 #define _EBTRB_OFF_7H 0xFF // Boot Block is not protected from table reads executed in other blocks.
2387 //==============================================================================
2389 #define __DEVID1 0x3FFFFE
2390 #define __DEVID2 0x3FFFFF
2392 #define __IDLOC0 0x200000
2393 #define __IDLOC1 0x200001
2394 #define __IDLOC2 0x200002
2395 #define __IDLOC3 0x200003
2396 #define __IDLOC4 0x200004
2397 #define __IDLOC5 0x200005
2398 #define __IDLOC6 0x200006
2399 #define __IDLOC7 0x200007
2401 #endif // #ifndef __PIC18LF1230_H__