Subversion Repositories svn.mios

Rev

Rev 53 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
305 stryd_one 1
/*
1 tk 2
 * pic18f4620.h - PIC18F4620 Device Library Header
305 stryd_one 3
 *
1 tk 4
 * This file is part of the GNU PIC Library.
305 stryd_one 5
 *
6
 * September, 2006
7
 * Added modifications by
8
 *     Gary Plumbridge <gary AT phodex.net>
1 tk 9
 *
305 stryd_one 10
 * August, 2006
11
 * Copied from 18f2550 and modified for 18f2620 by
12
 *     Anton Strobl <a.strobl AT aws-it.at>
1 tk 13
 *
305 stryd_one 14
 * May, 2005
15
 * The GNU PIC Library is maintained by
16
 *     Raphael Neider <rneider AT web.de>
17
 *
18
 * originally designed by
19
 *     Vangelis Rokas <vrokas AT otenet.gr>
20
 *
21
 * $Id: pic18f4620.h 305 2008-05-01 08:33:09Z stryd_one $
1 tk 22
 *
305 stryd_one 23
 * Modified by stryd.one@gmail for MIOS SDCC wrapper compliance: FSR0 registers swapped with FSR1
24
 *
25
 *
1 tk 26
 */
27
 
28
#ifndef __PIC18F4620_H__
305 stryd_one 29
#define __PIC18F4620_H__ 1
1 tk 30
 
305 stryd_one 31
extern __sfr __at (0xF80) PORTA;
1 tk 32
typedef union {
33
    struct {
305 stryd_one 34
        unsigned RA0        : 1;
35
        unsigned RA1        : 1;
36
        unsigned RA2        : 1;
37
        unsigned RA3        : 1;
38
        unsigned RA4        : 1;
39
        unsigned RA5        : 1;
40
        unsigned RA6        : 1;
41
        unsigned RA7        : 1;
1 tk 42
    };
305 stryd_one 43
    struct {
44
        unsigned RA         : 8;
45
    };
46
    /* aliases */
47
    struct {
48
        unsigned            :1;
49
        unsigned            :1;
50
        unsigned            :1;
51
        unsigned            :1;
52
        unsigned C1OUT      :1;
53
        unsigned C2OUT      :1;
54
        unsigned OSC2       :1;
55
        unsigned OSC1       :1;
56
    };
57
    struct {
58
        unsigned AN0        :1;
59
        unsigned AN1        :1;
60
        unsigned AN2        :1;
61
        unsigned AN3        :1;
62
        unsigned T0CKI      :1;
63
        unsigned AN4        :1;
64
        unsigned CLKO       :1;
65
        unsigned CLKI       :1;
66
    };
67
    struct {
68
        unsigned            :1;
69
        unsigned            :1;
70
        unsigned VREF_N     :1;
71
        unsigned VREF_P     :1;
72
        unsigned            :1;
73
        unsigned NOT_SS     :1;
74
        unsigned            :1;
75
        unsigned            :1;
76
    };
77
    struct {
78
        unsigned            :1;
79
        unsigned            :1;
80
        unsigned            :1;
81
        unsigned            :1;
82
        unsigned            :1;
83
        unsigned SS         :1;
84
        unsigned            :1;
85
        unsigned            :1;
86
    };
87
    struct {
88
        unsigned            :1;
89
        unsigned            :1;
90
        unsigned            :1;
91
        unsigned            :1;
92
        unsigned            :1;
93
        unsigned HLVDIN     :1;
94
        unsigned            :1;
95
        unsigned            :1;
96
    };
97
} __PORTA_t;
98
extern volatile __PORTA_t __at (0xF80) PORTAbits;
1 tk 99
 
305 stryd_one 100
extern __sfr __at (0xF81) PORTB;
101
typedef union {
1 tk 102
    struct {
305 stryd_one 103
        unsigned RB0        : 1;
104
        unsigned RB1        : 1;
105
        unsigned RB2        : 1;
106
        unsigned RB3        : 1;
107
        unsigned RB4        : 1;
108
        unsigned RB5        : 1;
109
        unsigned RB6        : 1;
110
        unsigned RB7        : 1;
1 tk 111
    };
305 stryd_one 112
    struct {
113
        unsigned RB         : 8;
114
    };
115
    /* aliases */
116
    struct {
117
        unsigned INT0       :1;
118
        unsigned INT1       :1;
119
        unsigned INT2       :1;
120
        unsigned CCP2       :1;
121
        unsigned KBI0       :1;
122
        unsigned KBI1       :1;
123
        unsigned KBI2       :1;
124
        unsigned KBI3       :1;
125
    };
126
    struct {
127
        unsigned AN12       :1;
128
        unsigned AN10       :1;
129
        unsigned AN8        :1;
130
        unsigned AN9        :1;
131
        unsigned AN11       :1;
132
        unsigned PGM        :1;
133
        unsigned PGC        :1;
134
        unsigned PGD        :1;
135
    };
136
    struct {
137
        unsigned FLT0       :1;
138
        unsigned            :7;
139
    };
140
} __PORTB_t;
141
extern volatile __PORTB_t __at (0xF81) PORTBbits;
1 tk 142
 
305 stryd_one 143
extern __sfr __at (0xF82) PORTC;
144
typedef union {
1 tk 145
    struct {
305 stryd_one 146
        unsigned RC0        : 1;
147
        unsigned RC1        : 1;
148
        unsigned RC2        : 1;
149
        unsigned RC3        : 1;
150
        unsigned RC4        : 1;
151
        unsigned RC5        : 1;
152
        unsigned RC6        : 1;
153
        unsigned RC7        : 1;
1 tk 154
    };
305 stryd_one 155
    struct {
156
        unsigned RC         : 8;
157
    };
158
    /* aliases */
159
    struct {
160
        unsigned T1OSO      :1;
161
        unsigned T1OSI      :1;
162
        unsigned CCP1       :1;
163
        unsigned SCK        :1;
164
        unsigned SDI        :1;
165
        unsigned SDO        :1;
166
        unsigned TX         :1;
167
        unsigned RX         :1;
168
    };
169
    struct {
170
        unsigned T3CKI      :1;
171
        unsigned CCP2       :1;
172
        unsigned P1A        :1;
173
        unsigned SCL        :1;
174
        unsigned SDA        :1;
175
        unsigned            :1;
176
        unsigned CK         :1;
177
        unsigned DTC        :1;   /* DT might be a reserved word in ASM */
178
    };
179
    struct {
180
        unsigned T1CKI      :1;
181
        unsigned            :1;
182
        unsigned            :1;
183
        unsigned            :1;
184
        unsigned            :1;
185
        unsigned            :1;
186
        unsigned            :1;
187
        unsigned            :1;
188
    };
189
    struct {
190
        unsigned T13CKI     :1;
191
        unsigned            :1;
192
        unsigned            :1;
193
        unsigned            :1;
194
        unsigned            :1;
195
        unsigned            :1;
196
        unsigned            :1;
197
        unsigned            :1;
198
    };
199
} __PORTC_t;
200
extern volatile __PORTC_t __at (0xF82) PORTCbits;
1 tk 201
 
305 stryd_one 202
extern __sfr __at (0xF83) PORTD;
203
typedef union {
1 tk 204
    struct {
305 stryd_one 205
        unsigned RD0        : 1;
206
        unsigned RD1        : 1;
207
        unsigned RD2        : 1;
208
        unsigned RD3        : 1;
209
        unsigned RD4        : 1;
210
        unsigned RD5        : 1;
211
        unsigned RD6        : 1;
212
        unsigned RD7        : 1;
1 tk 213
    };
305 stryd_one 214
    struct {
215
        unsigned RD         : 8;
216
    };
217
    /* aliases */
218
    struct {
219
        unsigned PSP0       :1;
220
        unsigned PSP1       :1;
221
        unsigned PSP2       :1;
222
        unsigned PSP3       :1;
223
        unsigned PSP4       :1;
224
        unsigned PSP5       :1;
225
        unsigned PSP6       :1;
226
        unsigned PSP7       :1;
227
    };
228
    struct {
229
        unsigned            :1;
230
        unsigned            :1;
231
        unsigned            :1;
232
        unsigned            :1;
233
        unsigned            :1;
234
        unsigned P1B        :1;
235
        unsigned P1C        :1;
236
        unsigned P1D        :1;
237
    };
238
} __PORTD_t;
239
extern volatile __PORTD_t __at (0xF83) PORTDbits;
1 tk 240
 
305 stryd_one 241
extern __sfr __at (0xF84) PORTE;
1 tk 242
typedef union {
243
    struct {
305 stryd_one 244
        unsigned RE0        : 1;
245
        unsigned RE1        : 1;
246
        unsigned RE2        : 1;
247
        unsigned RE3        : 1;
248
        unsigned            : 1;
249
        unsigned            : 1;
250
        unsigned            : 1;
251
        unsigned            : 1;
1 tk 252
    };
305 stryd_one 253
    struct {
254
        unsigned RE         : 8;
255
    };
256
    /* aliases */
257
    struct {
258
        unsigned AN5        :1;
259
        unsigned AN6        :1;
260
        unsigned AN7        :1;
261
        unsigned VPP        :1;
262
        unsigned            :1;
263
        unsigned            :1;
264
        unsigned            :1;
265
        unsigned            :1;
266
    };
267
    struct {
268
        unsigned RD         :1;
269
        unsigned WR         :1;
270
        unsigned CS         :1;
271
        unsigned MCLR       :1;
272
        unsigned            :1;
273
        unsigned            :1;
274
        unsigned            :1;
275
        unsigned            :1;
276
    };
277
} __PORTE_t;
278
extern volatile __PORTE_t __at (0xF84) PORTEbits;
1 tk 279
 
305 stryd_one 280
extern __sfr __at (0xF89) LATA;
281
typedef union {
1 tk 282
    struct {
305 stryd_one 283
        unsigned LATA0      : 1;
284
        unsigned LATA1      : 1;
285
        unsigned LATA2      : 1;
286
        unsigned LATA3      : 1;
287
        unsigned LATA4      : 1;
288
        unsigned LATA5      : 1;
289
        unsigned LATA6      : 1;
290
        unsigned LATA7      : 1;
1 tk 291
    };
305 stryd_one 292
} __LATA_t;
293
extern volatile __LATA_t __at (0xF89) LATAbits;
1 tk 294
 
305 stryd_one 295
extern __sfr __at (0xF8A) LATB;
1 tk 296
typedef union {
297
    struct {
305 stryd_one 298
        unsigned LATB0      : 1;
299
        unsigned LATB1      : 1;
300
        unsigned LATB2      : 1;
301
        unsigned LATB3      : 1;
302
        unsigned LATB4      : 1;
303
        unsigned LATB5      : 1;
304
        unsigned LATB6      : 1;
305
        unsigned LATB7      : 1;
1 tk 306
    };
305 stryd_one 307
} __LATB_t;
308
extern volatile __LATB_t __at (0xF8A) LATBbits;
1 tk 309
 
305 stryd_one 310
extern __sfr __at (0xF8B) LATC;
311
typedef union {
1 tk 312
    struct {
305 stryd_one 313
        unsigned LATC0      : 1;
314
        unsigned LATC1      : 1;
315
        unsigned LATC2      : 1;
316
        unsigned LATC3      : 1;
317
        unsigned LATC4      : 1;
318
        unsigned LATC5      : 1;
319
        unsigned LATC6      : 1;
320
        unsigned LATC7      : 1;
1 tk 321
    };
305 stryd_one 322
} __LATC_t;
323
extern volatile __LATC_t __at (0xF8B) LATCbits;
1 tk 324
 
305 stryd_one 325
extern __sfr __at (0xF8C) LATD;
326
typedef union {
1 tk 327
    struct {
305 stryd_one 328
        unsigned LATD0      : 1;
329
        unsigned LATD1      : 1;
330
        unsigned LATD2      : 1;
331
        unsigned LATD3      : 1;
332
        unsigned LATD4      : 1;
333
        unsigned LATD5      : 1;
334
        unsigned LATD6      : 1;
335
        unsigned LATD7      : 1;
1 tk 336
    };
305 stryd_one 337
} __LATD_t;
338
extern volatile __LATD_t __at (0xF8C) LATDbits;
1 tk 339
 
305 stryd_one 340
extern __sfr __at (0xF8D) LATE;
1 tk 341
typedef union {
342
    struct {
305 stryd_one 343
        unsigned LATE0      : 1;
344
        unsigned LATE1      : 1;
345
        unsigned LATE2      : 1;
346
        unsigned LATE3      : 1;
347
        unsigned            : 1;
348
        unsigned            : 1;
349
        unsigned            : 1;
350
        unsigned            : 1;
1 tk 351
    };
305 stryd_one 352
} __LATE_t;
353
extern volatile __LATE_t __at (0xF8D) LATEbits;
1 tk 354
 
305 stryd_one 355
extern __sfr __at (0xF92) TRISA;
356
typedef union {
1 tk 357
    struct {
305 stryd_one 358
        unsigned TRISA0     : 1;
359
        unsigned TRISA1     : 1;
360
        unsigned TRISA2     : 1;
361
        unsigned TRISA3     : 1;
362
        unsigned TRISA4     : 1;
363
        unsigned TRISA5     : 1;
364
        unsigned TRISA6     : 1;
365
        unsigned TRISA7     : 1;
1 tk 366
    };
305 stryd_one 367
} __TRISA_t;
368
extern volatile __TRISA_t __at (0xF92) TRISAbits;
1 tk 369
 
305 stryd_one 370
extern __sfr __at (0xF93) TRISB;
1 tk 371
typedef union {
372
    struct {
305 stryd_one 373
        unsigned TRISB0     : 1;
374
        unsigned TRISB1     : 1;
375
        unsigned TRISB2     : 1;
376
        unsigned TRISB3     : 1;
377
        unsigned TRISB4     : 1;
378
        unsigned TRISB5     : 1;
379
        unsigned TRISB6     : 1;
380
        unsigned TRISB7     : 1;
1 tk 381
    };
305 stryd_one 382
} __TRISB_t;
383
extern volatile __TRISB_t __at (0xF93) TRISBbits;
1 tk 384
 
305 stryd_one 385
extern __sfr __at (0xF94) TRISC;
386
typedef union {
1 tk 387
    struct {
305 stryd_one 388
        unsigned TRISC0     : 1;
389
        unsigned TRISC1     : 1;
390
        unsigned TRISC2     : 1;
391
        unsigned TRISC3     : 1;
392
        unsigned TRISC4     : 1;
393
        unsigned TRISC5     : 1;
394
        unsigned TRISC6     : 1;
395
        unsigned TRISC7     : 1;
1 tk 396
    };
305 stryd_one 397
} __TRISC_t;
398
extern volatile __TRISC_t __at (0xF94) TRISCbits;
1 tk 399
 
305 stryd_one 400
extern __sfr __at (0xF95) TRISD;
401
typedef union {
1 tk 402
    struct {
305 stryd_one 403
        unsigned TRISD0     : 1;
404
        unsigned TRISD1     : 1;
405
        unsigned TRISD2     : 1;
406
        unsigned TRISD3     : 1;
407
        unsigned TRISD4     : 1;
408
        unsigned TRISD5     : 1;
409
        unsigned TRISD6     : 1;
410
        unsigned TRISD7     : 1;
1 tk 411
    };
305 stryd_one 412
} __TRISD_t;
413
extern volatile __TRISD_t __at (0xF95) TRISDbits;
1 tk 414
 
305 stryd_one 415
extern __sfr __at (0xF96) TRISE;
1 tk 416
typedef union {
417
    struct {
305 stryd_one 418
        unsigned TRISE0     : 1;
419
        unsigned TRISE1     : 1;
420
        unsigned TRISE2     : 1;
421
        unsigned TRISE3     : 1;
422
        unsigned PSPMODE    : 1;
423
        unsigned IBOV       : 1;
424
        unsigned OBF        : 1;
425
        unsigned IBF        : 1;
1 tk 426
    };
305 stryd_one 427
} __TRISE_t;
428
extern volatile __TRISE_t __at (0xF96) TRISEbits;
1 tk 429
 
305 stryd_one 430
extern __sfr __at (0xF9B) OSCTUNE;
1 tk 431
typedef union {
432
    struct {
305 stryd_one 433
        unsigned TUN        : 5;
434
        unsigned            : 1;
435
        unsigned PLLEN      : 1;
436
        unsigned INTSRC     : 1;
1 tk 437
    };
305 stryd_one 438
} __OSCTUNE_t;
439
extern volatile __OSCTUNE_t __at (0xF9B) OSCTUNEbits;
1 tk 440
 
305 stryd_one 441
extern __sfr __at (0xF9D) PIE1;
1 tk 442
typedef union {
443
    struct {
305 stryd_one 444
        unsigned TMR1IE     : 1;
445
        unsigned TMR2IE     : 1;
446
        unsigned CCP1IE     : 1;
447
        unsigned SSPIE      : 1;
448
        unsigned TXIE       : 1;
449
        unsigned RCIE       : 1;
450
        unsigned ADIE       : 1;
451
        unsigned PSPIE      : 1;
1 tk 452
    };
305 stryd_one 453
} __PIE1_t;
454
extern volatile __PIE1_t __at (0xF9D) PIE1bits;
1 tk 455
 
305 stryd_one 456
extern __sfr __at (0xF9E) PIR1;
1 tk 457
typedef union {
458
    struct {
305 stryd_one 459
        unsigned TMR1IF     : 1;
460
        unsigned TMR2IF     : 1;
461
        unsigned CCP1IF     : 1;
462
        unsigned SSPIF      : 1;
463
        unsigned TXIF       : 1;
464
        unsigned RCIF       : 1;
465
        unsigned ADIF       : 1;
466
        unsigned PSPIF      : 1;
1 tk 467
    };
305 stryd_one 468
} __PIR1_t;
469
extern volatile __PIR1_t __at (0xF9E) PIR1bits;
1 tk 470
 
305 stryd_one 471
extern __sfr __at (0xF9F) IPR1;
1 tk 472
typedef union {
473
    struct {
305 stryd_one 474
        unsigned TMR1IP     : 1;
475
        unsigned TMR2IP     : 1;
476
        unsigned CCP1IP     : 1;
477
        unsigned SSPIP      : 1;
478
        unsigned TXIP       : 1;
479
        unsigned RCIP       : 1;
480
        unsigned ADIP       : 1;
481
        unsigned PSPIP      : 1;
1 tk 482
    };
305 stryd_one 483
} __IPR1_t;
484
extern volatile __IPR1_t __at (0xF9F) IPR1bits;
1 tk 485
 
305 stryd_one 486
extern __sfr __at (0xFA0) PIE2;
1 tk 487
typedef union {
488
    struct {
305 stryd_one 489
        unsigned CCP2IE     : 1;
490
        unsigned TMR3IE     : 1;
491
        unsigned HLVDIE     : 1;
492
        unsigned BCLIE      : 1;
493
        unsigned EEIE       : 1;
494
        unsigned USBIE      : 1;
495
        unsigned CMIE       : 1;
496
        unsigned OSCFIE     : 1;
1 tk 497
    };
305 stryd_one 498
} __PIE2_t;
499
extern volatile __PIE2_t __at (0xFA0) PIE2bits;
1 tk 500
 
305 stryd_one 501
extern __sfr __at (0xFA1) PIR2;
1 tk 502
typedef union {
503
    struct {
305 stryd_one 504
        unsigned CCP2IF     : 1;
505
        unsigned TMR3IF     : 1;
506
        unsigned HLVDIF     : 1;
507
        unsigned BCLIF      : 1;
508
        unsigned EEIF       : 1;
509
        unsigned USBIF      : 1;
510
        unsigned CMIF       : 1;
511
        unsigned OSCFIF     : 1;
1 tk 512
    };
305 stryd_one 513
} __PIR2_t;
514
extern volatile __PIR2_t __at (0xFA1) PIR2bits;
1 tk 515
 
305 stryd_one 516
extern __sfr __at (0xFA2) IPR2;
1 tk 517
typedef union {
518
    struct {
305 stryd_one 519
        unsigned CCP2IP     : 1;
520
        unsigned TMR3IP     : 1;
521
        unsigned HLVDIP     : 1;
522
        unsigned BCLIP      : 1;
523
        unsigned EEIP       : 1;
524
        unsigned USBIP      : 1;
525
        unsigned CMIP       : 1;
526
        unsigned OSCFIP     : 1;
1 tk 527
    };
305 stryd_one 528
} __IPR2_t;
529
extern volatile __IPR2_t __at (0xFA2) IPR2bits;
1 tk 530
 
305 stryd_one 531
extern __sfr __at (0xFA6) EECON1;
1 tk 532
typedef union {
533
    struct {
305 stryd_one 534
        unsigned RD         : 1;
535
        unsigned WR         : 1;
536
        unsigned WREN       : 1;
537
        unsigned WRERR      : 1;
538
        unsigned FREE       : 1;
539
        unsigned            : 1;
540
        unsigned CFGS       : 1;
541
        unsigned EEPGD      : 1;
1 tk 542
    };
305 stryd_one 543
} __EECON1_t;
544
extern volatile __EECON1_t __at (0xFA6) EECON1bits;
1 tk 545
 
305 stryd_one 546
extern __sfr __at (0xFA7) EECON2;
1 tk 547
 
305 stryd_one 548
extern __sfr __at (0xFA8) EEDATA;
549
 
550
extern __sfr __at (0xFA9) EEADR;
551
 
552
extern __sfr __at (0xFAA) EEADRH;
553
 
554
extern __sfr __at (0xFAB) RCSTA;
1 tk 555
typedef union {
556
    struct {
305 stryd_one 557
        unsigned RX9D       : 1;
558
        unsigned OERR       : 1;
559
        unsigned FERR       : 1;
560
        unsigned ADDEN      : 1;
561
        unsigned CREN       : 1;
562
        unsigned SREN       : 1;
563
        unsigned RX9        : 1;
564
        unsigned SPEN       : 1;
1 tk 565
    };
305 stryd_one 566
} __RCSTA_t;
567
extern volatile __RCSTA_t __at (0xFAB) RCSTAbits;
1 tk 568
 
305 stryd_one 569
extern __sfr __at (0xFAC) TXSTA;
1 tk 570
typedef union {
571
    struct {
305 stryd_one 572
        unsigned TX9D       : 1;
573
        unsigned TRMT       : 1;
574
        unsigned BRGH       : 1;
575
        unsigned SENDB      : 1;
576
        unsigned SYNC       : 1;
577
        unsigned TXEN       : 1;
578
        unsigned TX9        : 1;
579
        unsigned CSRC       : 1;
1 tk 580
    };
305 stryd_one 581
} __TXSTA_t;
582
extern volatile __TXSTA_t __at (0xFAC) TXSTAbits;
1 tk 583
 
305 stryd_one 584
extern __sfr __at (0xFAD) TXREG;
1 tk 585
 
305 stryd_one 586
extern __sfr __at (0xFAE) RCREG;
587
 
588
extern __sfr __at (0xFAF) SPBRG;
589
 
590
extern __sfr __at (0xFB0) SPBRGH;
591
 
592
extern __sfr __at (0xFB1) T3CON;
1 tk 593
typedef union {
594
    struct {
305 stryd_one 595
        unsigned TMR3ON     : 1;
596
        unsigned TMR3CS     : 1;
597
        unsigned NOT_T3SYNC : 1;
598
        unsigned T3CCP1     : 1;
599
        unsigned T3CKPS0    : 1;
600
        unsigned T3CKPS1    : 1;
601
        unsigned T3CCP2     : 1;
602
        unsigned RD16       : 1;
1 tk 603
    };
305 stryd_one 604
} __T3CON_t;
605
extern volatile __T3CON_t __at (0xFB1) T3CONbits;
1 tk 606
 
305 stryd_one 607
extern __sfr __at (0xFB2) TMR3L;
1 tk 608
 
305 stryd_one 609
extern __sfr __at (0xFB3) TMR3H;
610
 
611
extern __sfr __at (0xFB4) CMCON;
1 tk 612
typedef union {
613
    struct {
305 stryd_one 614
        unsigned CM0        : 1;
615
        unsigned CM1        : 1;
616
        unsigned CM2        : 1;
617
        unsigned CIS        : 1;
618
        unsigned C1INV      : 1;
619
        unsigned C2INV      : 1;
620
        unsigned C1OUT      : 1;
621
        unsigned C2OUT      : 1;
1 tk 622
    };
305 stryd_one 623
} __CMCON_t;
624
extern volatile __CMCON_t __at (0xFB4) CMCONbits;
1 tk 625
 
305 stryd_one 626
extern __sfr __at (0xFB5) CVRCON;
1 tk 627
typedef union {
628
    struct {
305 stryd_one 629
        unsigned CVR0       : 1;
630
        unsigned CVR1       : 1;
631
        unsigned CVR2       : 1;
632
        unsigned CVR3       : 1;
633
        unsigned CVRSS      : 1;
634
        unsigned CVRR       : 1;
635
        unsigned CVROE      : 1;
636
        unsigned CVREN      : 1;
1 tk 637
    };
305 stryd_one 638
} __CVRCON_t;
639
extern volatile __CVRCON_t __at (0xFB5) CVRCONbits;
1 tk 640
 
305 stryd_one 641
extern __sfr __at (0xFB6) ECCP1AS;
1 tk 642
typedef union {
643
    struct {
305 stryd_one 644
        unsigned PSSBD0     : 1;
645
        unsigned PSSBD1     : 1;
646
        unsigned PSSAC0     : 1;
647
        unsigned PSSAC1     : 1;
648
        unsigned ECCPAS0    : 1;
649
        unsigned ECCPAS1    : 1;
650
        unsigned ECCPAS2    : 1;
651
        unsigned ECCPASE    : 1;
1 tk 652
    };
305 stryd_one 653
} __ECCP1AS_t;
654
extern volatile __ECCP1AS_t __at (0xFB6) ECCP1ASbits;
1 tk 655
 
305 stryd_one 656
extern __sfr __at (0xFB7) PWM1CON;
1 tk 657
typedef union {
658
    struct {
305 stryd_one 659
        unsigned PDC        : 7;
660
        unsigned PRSEN      : 1;
1 tk 661
    };
305 stryd_one 662
} __PWM1CON_t;
663
extern volatile __PWM1CON_t __at (0xFB7) PWM1CONbits;
1 tk 664
 
305 stryd_one 665
extern __sfr __at (0xFB8) BAUDCON;
1 tk 666
typedef union {
667
    struct {
305 stryd_one 668
        unsigned ABDEN      : 1;
669
        unsigned WUE        : 1;
670
        unsigned            : 1;
671
        unsigned BRG16      : 1;
672
        unsigned TXCKP      : 1;
673
        unsigned RXDTP      : 1;
674
        unsigned RCIDL      : 1;
675
        unsigned ABDOVF     : 1;
1 tk 676
    };
305 stryd_one 677
} __BAUDCON_t;
678
extern volatile __BAUDCON_t __at (0xFB8) BAUDCONbits;
1 tk 679
 
305 stryd_one 680
extern __sfr __at (0xFBA) CCP2CON;
1 tk 681
typedef union {
682
    struct {
305 stryd_one 683
        unsigned CCP2M0     : 1;
684
        unsigned CCP2M1     : 1;
685
        unsigned CCP2M2     : 1;
686
        unsigned CCP2M3     : 1;
687
        unsigned DC2B0      : 1;
688
        unsigned DC2B1      : 1;
689
        unsigned            : 1;
690
        unsigned            : 1;
1 tk 691
    };
305 stryd_one 692
} __CCP2CON_t;
693
extern volatile __CCP2CON_t __at (0xFBA) CCP2CONbits;
1 tk 694
 
305 stryd_one 695
extern __sfr __at (0xFBB) CCPR2L;
1 tk 696
 
305 stryd_one 697
extern __sfr __at (0xFBC) CCPR2H;
698
 
699
extern __sfr __at (0xFBD) CCP1CON;
1 tk 700
typedef union {
701
    struct {
305 stryd_one 702
        unsigned CCP1M0     : 1;
703
        unsigned CCP1M1     : 1;
704
        unsigned CCP1M2     : 1;
705
        unsigned CCP1M3     : 1;
706
        unsigned DC1B0      : 1;
707
        unsigned DC1B1      : 1;
708
        unsigned P1M0       : 1;
709
        unsigned P1M1       : 1;
1 tk 710
    };
305 stryd_one 711
} __CCP1CON_t;
712
extern volatile __CCP1CON_t __at (0xFBD) CCP1CONbits;
1 tk 713
 
305 stryd_one 714
extern __sfr __at (0xFBE) CCPR1L;
1 tk 715
 
305 stryd_one 716
extern __sfr __at (0xFBF) CCPR1H;
717
 
718
extern __sfr __at (0xFC0) ADCON2;
1 tk 719
typedef union {
720
    struct {
305 stryd_one 721
        unsigned ADCS0      : 1;
722
        unsigned ADCS1      : 1;
723
        unsigned ADCS2      : 1;
724
        unsigned ACQT0      : 1;
725
        unsigned ACQT1      : 1;
726
        unsigned ACQT2      : 1;
727
        unsigned            : 1;
728
        unsigned ADFM       : 1;
1 tk 729
    };
305 stryd_one 730
} __ADCON2_t;
731
extern volatile __ADCON2_t __at (0xFC0) ADCON2bits;
1 tk 732
 
305 stryd_one 733
extern __sfr __at (0xFC1) ADCON1;
1 tk 734
typedef union {
735
    struct {
305 stryd_one 736
        unsigned PCFG0      : 1;
737
        unsigned PCFG1      : 1;
738
        unsigned PCFG2      : 1;
739
        unsigned PCFG3      : 1;
740
        unsigned VCFG0      : 1;
741
        unsigned VCFG1      : 1;
742
        unsigned            : 1;
743
        unsigned            : 1;
1 tk 744
    };
305 stryd_one 745
} __ADCON1_t;
746
extern volatile __ADCON1_t __at (0xFC1) ADCON1bits;
1 tk 747
 
305 stryd_one 748
extern __sfr __at (0xFC2) ADCON0;
1 tk 749
typedef union {
750
    struct {
305 stryd_one 751
        unsigned ADON       : 1;
752
        unsigned GO         : 1;
753
        unsigned CHS0       : 1;
754
        unsigned CHS1       : 1;
755
        unsigned CHS2       : 1;
756
        unsigned CHS3       : 1;
757
        unsigned            : 1;
758
        unsigned            : 1;
1 tk 759
    };
305 stryd_one 760
} __ADCON0_t;
761
extern volatile __ADCON0_t __at (0xFC2) ADCON0bits;
1 tk 762
 
305 stryd_one 763
extern __sfr __at (0xFC3) ADRESL;
1 tk 764
 
305 stryd_one 765
extern __sfr __at (0xFC4) ADRESH;
766
 
767
extern __sfr __at (0xFC5) SSPCON2;
1 tk 768
typedef union {
769
    struct {
305 stryd_one 770
        unsigned SEN        : 1;
771
        unsigned RSEN       : 1;
772
        unsigned PEN        : 1;
773
        unsigned RCEN       : 1;
774
        unsigned ACKEN      : 1;
775
        unsigned ACKDT      : 1;
776
        unsigned ACKSTAT    : 1;
777
        unsigned GCEN       : 1;
1 tk 778
    };
305 stryd_one 779
} __SSPCON2_t;
780
extern volatile __SSPCON2_t __at (0xFC5) SSPCON2bits;
1 tk 781
 
305 stryd_one 782
extern __sfr __at (0xFC6) SSPCON1;
1 tk 783
typedef union {
784
    struct {
305 stryd_one 785
        unsigned SSPM0      : 1;
786
        unsigned SSPM1      : 1;
787
        unsigned SSPM2      : 1;
788
        unsigned SSPM3      : 1;
789
        unsigned CKP        : 1;
790
        unsigned SSPEN      : 1;
791
        unsigned SSPOV      : 1;
792
        unsigned WCOL       : 1;
1 tk 793
    };
305 stryd_one 794
} __SSPCON1_t;
795
extern volatile __SSPCON1_t __at (0xFC6) SSPCON1bits;
1 tk 796
 
305 stryd_one 797
extern __sfr __at (0xFC7) SSPSTAT;
1 tk 798
typedef union {
799
    struct {
305 stryd_one 800
        unsigned BF         : 1;
801
        unsigned UA         : 1;
802
        unsigned R_W        : 1;
803
        unsigned S          : 1;
804
        unsigned P          : 1;
805
        unsigned D_A        : 1;
806
        unsigned CKE        : 1;
807
        unsigned SMP        : 1;
1 tk 808
    };
305 stryd_one 809
} __SSPSTAT_t;
810
extern volatile __SSPSTAT_t __at (0xFC7) SSPSTATbits;
1 tk 811
 
305 stryd_one 812
extern __sfr __at (0xFC8) SSPADD;
1 tk 813
 
305 stryd_one 814
extern __sfr __at (0xFC9) SSPBUF;
815
 
816
extern __sfr __at (0xFCA) T2CON;
1 tk 817
typedef union {
818
    struct {
305 stryd_one 819
        unsigned T2CKPS0    : 1;
820
        unsigned T2CKPS1    : 1;
821
        unsigned TMR2ON     : 1;
822
        unsigned TOUTPS0    : 1;
823
        unsigned TOUTPS1    : 1;
824
        unsigned TOUTPS2    : 1;
825
        unsigned TOUTPS3    : 1;
826
        unsigned            : 1;
1 tk 827
    };
305 stryd_one 828
} __T2CON_t;
829
extern volatile __T2CON_t __at (0xFCA) T2CONbits;
1 tk 830
 
305 stryd_one 831
extern __sfr __at (0xFCB) PR2;
1 tk 832
 
305 stryd_one 833
extern __sfr __at (0xFCC) TMR2;
834
 
835
extern __sfr __at (0xFCD) T1CON;
1 tk 836
typedef union {
837
    struct {
305 stryd_one 838
        unsigned TMR1ON     : 1;
839
        unsigned TMR1CS     : 1;
840
        unsigned NOT_T1SYNC : 1;
841
        unsigned T1OSCEN    : 1;
842
        unsigned T1CKPS0    : 1;
843
        unsigned T1CKPS1    : 1;
844
        unsigned T1RUN      : 1;
845
        unsigned RD16       : 1;
1 tk 846
    };
305 stryd_one 847
} __T1CON_t;
848
extern volatile __T1CON_t __at (0xFCD) T1CONbits;
1 tk 849
 
305 stryd_one 850
extern __sfr __at (0xFCE) TMR1L;
1 tk 851
 
305 stryd_one 852
extern __sfr __at (0xFCF) TMR1H;
853
 
854
extern __sfr __at (0xFD0) RCON;
1 tk 855
typedef union {
856
    struct {
305 stryd_one 857
        unsigned BOR        : 1;
858
        unsigned POR        : 1;
859
        unsigned PD         : 1;
860
        unsigned TO         : 1;
861
        unsigned RI         : 1;
862
        unsigned            : 1;
863
        unsigned SBOREN     : 1;
864
        unsigned IPEN       : 1;
1 tk 865
    };
305 stryd_one 866
} __RCON_t;
867
extern volatile __RCON_t __at (0xFD0) RCONbits;
1 tk 868
 
305 stryd_one 869
extern __sfr __at (0xFD1) WDTCON;
1 tk 870
typedef union {
871
    struct {
305 stryd_one 872
        unsigned SWDTEN     : 1;
873
        unsigned            : 1;
874
        unsigned            : 1;
875
        unsigned            : 1;
876
        unsigned            : 1;
877
        unsigned            : 1;
878
        unsigned            : 1;
879
        unsigned            : 1;
1 tk 880
    };
305 stryd_one 881
} __WDTCON_t;
882
extern volatile __WDTCON_t __at (0xFD1) WDTCONbits;
1 tk 883
 
305 stryd_one 884
extern __sfr __at (0xFD2) HLVDCON;
1 tk 885
typedef union {
886
    struct {
305 stryd_one 887
        unsigned HLVDL0     : 1;
888
        unsigned HLVDL1     : 1;
889
        unsigned HLVDL2     : 1;
890
        unsigned HLVDL3     : 1;
891
        unsigned HLVDEN     : 1;
892
        unsigned IRVST      : 1;
893
        unsigned            : 1;
894
        unsigned VDIRMAG    : 1;
1 tk 895
    };
305 stryd_one 896
} __HLVDCON_t;
897
extern volatile __HLVDCON_t __at (0xFD2) HLVDCONbits;
1 tk 898
 
305 stryd_one 899
extern __sfr __at (0xFD3) OSCCON;
1 tk 900
typedef union {
901
    struct {
305 stryd_one 902
        unsigned SCS        : 2;
903
        unsigned IOFS       : 1;
904
        unsigned OSTS       : 1;
905
        unsigned IRCF       : 3;
906
        unsigned IDLEN      : 1;
1 tk 907
    };
305 stryd_one 908
} __OSCCON_t;
909
extern volatile __OSCCON_t __at (0xFD3) OSCCONbits;
1 tk 910
 
305 stryd_one 911
extern __sfr __at (0xFD5) T0CON;
912
typedef union {
1 tk 913
    struct {
305 stryd_one 914
        unsigned T0PS0      : 1;
915
        unsigned T0PS1      : 1;
916
        unsigned T0PS2      : 1;
917
        unsigned PSA        : 1;
918
        unsigned T0SE       : 1;
919
        unsigned T0CS       : 1;
920
        unsigned T08BIT     : 1;
921
        unsigned TMR0ON     : 1;
1 tk 922
    };
305 stryd_one 923
} __T0CON_t;
924
extern volatile __T0CON_t __at (0xFD5) T0CONbits;
1 tk 925
 
305 stryd_one 926
extern __sfr __at (0xFD6) TMR0L;
1 tk 927
 
305 stryd_one 928
extern __sfr __at (0xFD7) TMR0H;
929
 
930
extern __sfr __at (0xFD8) STATUS;
1 tk 931
typedef union {
932
    struct {
305 stryd_one 933
        unsigned C          : 1;
934
        unsigned DC         : 1;
935
        unsigned Z          : 1;
936
        unsigned OV         : 1;
937
        unsigned N          : 1;
938
        unsigned            : 1;
939
        unsigned            : 1;
940
        unsigned            : 1;
1 tk 941
    };
305 stryd_one 942
} __STATUS_t;
943
extern volatile __STATUS_t __at (0xFD8) STATUSbits;
1 tk 944
 
305 stryd_one 945
extern __sfr __at (0xFD9) FSR2L;
946
 
947
extern __sfr __at (0xFDA) FSR2H;
948
typedef union {
1 tk 949
    struct {
305 stryd_one 950
        unsigned FSR2H      : 4;
951
        unsigned            : 1;
952
        unsigned            : 1;
953
        unsigned            : 1;
954
        unsigned            : 1;
1 tk 955
    };
305 stryd_one 956
} __FSR2H_t;
957
extern volatile __FSR2H_t __at (0xFDA) FSR2Hbits;
1 tk 958
 
305 stryd_one 959
extern __sfr __at (0xFDB) PLUSW2;
1 tk 960
 
305 stryd_one 961
extern __sfr __at (0xFDC) PREINC2;
962
 
963
extern __sfr __at (0xFDD) POSTDEC2;
964
 
965
extern __sfr __at (0xFDE) POSTINC2;
966
 
967
extern __sfr __at (0xFDF) INDF2;
968
 
969
extern __sfr __at (0xFE0) BSR;
1 tk 970
typedef union {
971
    struct {
305 stryd_one 972
        unsigned BSR        : 4;
973
        unsigned            : 1;
974
        unsigned            : 1;
975
        unsigned            : 1;
976
        unsigned            : 1;
1 tk 977
    };
305 stryd_one 978
} __BSR_t;
979
extern volatile __BSR_t __at (0xFE0) BSRbits;
1 tk 980
 
305 stryd_one 981
extern __sfr __at (0xFE1) FSR0L;
1 tk 982
 
305 stryd_one 983
extern __sfr __at (0xFE2) FSR0H;
1 tk 984
typedef union {
985
    struct {
305 stryd_one 986
        unsigned FSR0H      : 4;
987
        unsigned            : 1;
988
        unsigned            : 1;
989
        unsigned            : 1;
990
        unsigned            : 1;
1 tk 991
    };
305 stryd_one 992
} __FSR0H_t;
993
extern volatile __FSR0H_t __at (0xFE2) FSR0Hbits;
1 tk 994
 
305 stryd_one 995
extern __sfr __at (0xFE3) PLUSW0;
1 tk 996
 
305 stryd_one 997
extern __sfr __at (0xFE4) PREINC0;
998
 
999
extern __sfr __at (0xFE5) POSTDEC0;
1000
 
1001
extern __sfr __at (0xFE6) POSTINC0;
1002
 
1003
extern __sfr __at (0xFE7) INDF0;
1004
 
1005
extern __sfr __at (0xFE8) WREG;
1006
 
1007
extern __sfr __at (0xFE9) FSR1L;
1008
 
1009
extern __sfr __at (0xFEA) FSR1H;
1 tk 1010
typedef union {
1011
    struct {
305 stryd_one 1012
        unsigned FSR1H      : 4;
1013
        unsigned            : 1;
1014
        unsigned            : 1;
1015
        unsigned            : 1;
1016
        unsigned            : 1;
1 tk 1017
    };
305 stryd_one 1018
} __FSR1H_t;
1019
extern volatile __FSR1H_t __at (0xFEA) FSR1Hbits;
1 tk 1020
 
305 stryd_one 1021
extern __sfr __at (0xFEB) PLUSW1;
1 tk 1022
 
305 stryd_one 1023
extern __sfr __at (0xFEC) PREINC1;
1024
 
1025
extern __sfr __at (0xFED) POSTDEC1;
1026
 
1027
extern __sfr __at (0xFEE) POSTINC1;
1028
 
1029
extern __sfr __at (0xFEF) INDF1;
1030
 
1031
extern __sfr __at (0xFF0) INTCON3;
1 tk 1032
typedef union {
1033
    struct {
305 stryd_one 1034
        unsigned INT1IF     : 1;
1035
        unsigned INT2IF     : 1;
1036
        unsigned            : 1;
1037
        unsigned INT1IE     : 1;
1038
        unsigned INT2IE     : 1;
1039
        unsigned            : 1;
1040
        unsigned INT1IP     : 1;
1041
        unsigned INT2IP     : 1;
1 tk 1042
    };
305 stryd_one 1043
} __INTCON3_t;
1044
extern volatile __INTCON3_t __at (0xFF0) INTCON3bits;
1 tk 1045
 
305 stryd_one 1046
extern __sfr __at (0xFF1) INTCON2;
1047
typedef union {
1 tk 1048
    struct {
305 stryd_one 1049
        unsigned RBIP       : 1;
1050
        unsigned            : 1;
1051
        unsigned TMR0IP     : 1;
1052
        unsigned            : 1;
1053
        unsigned INTEDG2    : 1;
1054
        unsigned INTEDG1    : 1;
1055
        unsigned INTEDG0    : 1;
1056
        unsigned RBPU       : 1;
1 tk 1057
    };
305 stryd_one 1058
} __INTCON2_t;
1059
extern volatile __INTCON2_t __at (0xFF1) INTCON2bits;
1 tk 1060
 
305 stryd_one 1061
extern __sfr __at (0xFF2) INTCON;
1062
typedef union {
1063
    struct {
1064
        unsigned RBIF       : 1;
1065
        unsigned INT0IF     : 1;
1066
        unsigned TMR0IF     : 1;
1067
        unsigned RBIE       : 1;
1068
        unsigned INT0IE     : 1;
1069
        unsigned TMR0IE     : 1;
1070
        unsigned PEIE       : 1;
1071
        unsigned GIE        : 1;
1072
    };
1073
    struct {
1074
        unsigned            : 1;
1075
        unsigned            : 1;
1076
        unsigned            : 1;
1077
        unsigned            : 1;
1078
        unsigned            : 1;
1079
        unsigned            : 1;
1080
        unsigned GIEL       : 1;
1081
        unsigned GIEH       : 1;
1082
    };
1083
} __INTCON_t;
1084
extern volatile __INTCON_t __at (0xFF2) INTCONbits;
1 tk 1085
 
305 stryd_one 1086
extern __sfr __at (0xFF3) PRODL;
1087
 
1088
extern __sfr __at (0xFF4) PRODH;
1089
 
1090
extern __sfr __at (0xFF5) TABLAT;
1091
 
1092
extern __sfr __at (0xFF6) TBLPTRL;
1093
 
1094
extern __sfr __at (0xFF7) TBLPTRH;
1095
 
1096
extern __sfr __at (0xFF8) TBLPTRU;
1 tk 1097
typedef union {
1098
    struct {
305 stryd_one 1099
        unsigned TBLPTRU    : 5;
1100
        unsigned            : 1;
1101
        unsigned            : 1;
1102
        unsigned            : 1;
1 tk 1103
    };
305 stryd_one 1104
} __TBLPTRU_t;
1105
extern volatile __TBLPTRU_t __at (0xFF8) TBLPTRUbits;
1 tk 1106
 
305 stryd_one 1107
extern __sfr __at (0xFF9) PCL;
1 tk 1108
 
305 stryd_one 1109
extern __sfr __at (0xFFA) PCLATH;
1 tk 1110
typedef union {
1111
    struct {
305 stryd_one 1112
        unsigned PCH        : 8;
1 tk 1113
    };
305 stryd_one 1114
} __PCLATH_t;
1115
extern volatile __PCLATH_t __at (0xFFA) PCLATHbits;
1 tk 1116
 
305 stryd_one 1117
extern __sfr __at (0xFFB) PCLATU;
1118
typedef union {
1119
    struct {
1120
        unsigned PCU        : 5;
1121
        unsigned            : 1;
1122
        unsigned            : 1;
1123
        unsigned            : 1;
1124
    };
1125
} __PCLATU_t;
1126
extern volatile __PCLATU_t __at (0xFFB) PCLATUbits;
1 tk 1127
 
305 stryd_one 1128
extern __sfr __at (0xFFC) STKPTR;
1 tk 1129
typedef union {
1130
    struct {
305 stryd_one 1131
        unsigned STKPTR     : 5;
1132
        unsigned            : 1;
1133
        unsigned STKUNF     : 1;
1134
        unsigned STKFUL     : 1;
1 tk 1135
    };
305 stryd_one 1136
} __STKPTR_t;
1137
extern volatile __STKPTR_t __at (0xFFC) STKPTRbits;
1 tk 1138
 
305 stryd_one 1139
extern __sfr __at (0xFFD) TOSL;
1 tk 1140
 
305 stryd_one 1141
extern __sfr __at (0xFFE) TOSH;
1 tk 1142
 
305 stryd_one 1143
extern __sfr __at (0xFFF) TOSU;
1144
typedef union {
1145
    struct {
1146
        unsigned TOSU       : 5;
1147
        unsigned            : 1;
1148
        unsigned            : 1;
1149
        unsigned            : 1;
1150
    };
1151
} __TOSU_t;
1152
extern volatile __TOSU_t __at (0xFFF) TOSUbits;
1 tk 1153
 
305 stryd_one 1154
/* Configuration register locations */
1155
#define __CONFIG1H  0x300001
1156
#define __CONFIG2L  0x300002
1157
#define __CONFIG2H  0x300003
1158
#define __CONFIG3H  0x300005
1159
#define __CONFIG4L  0x300006
1160
#define __CONFIG5L  0x300008
1161
#define __CONFIG5H  0x300009
1162
#define __CONFIG6L  0x30000A
1163
#define __CONFIG6H  0x30000B
1164
#define __CONFIG7L  0x30000C
1165
#define __CONFIG7H  0x30000D
1 tk 1166
 
1167
 
1168
/* Oscillator 1H options */
305 stryd_one 1169
#define _OSC_INTIO7_1H                              0xF9    /* INTRC-OSC2 as Clock Out, OSC1 as RA7 */
1170
#define _OSC_INTIO67_1H                             0xF8    /* INTRC-OSC2 as RA6, OSC1 as RA7 */
1171
#define _OSC_RCIO6_1H                               0xF7    /* RC-OSC2 as RA6 */
1172
#define _OSC_HSPLL_1H                               0xF6    /* HS-PLL Enabled */
1173
#define _OSC_ECIO6_1H                               0xF5    /* EC-OSC2 as RA6 */
1174
#define _OSC_EC_1H                                  0xF4    /* EC-OSC2 as Clock Out */
1175
#define _OSC_RC_1H                                  0xF3    /* RC */
1176
#define _OSC_HS_1H                                  0xF2    /* HS */
1177
#define _OSC_XT_1H                                  0xF1    /* XT */
1178
#define _OSC_LP_1H                                  0xF0    /* LP */
1 tk 1179
 
305 stryd_one 1180
/* Fail-Safe Clock Monitor Enable 1H options */
1181
#define _FCMEN_OFF_1H                               0xBF    /* Disabled */
1182
#define _FCMEN_ON_1H                                0xFF    /* Enabled */
1 tk 1183
 
305 stryd_one 1184
/* Internal External Switch Over Mode 1H options */
1185
#define _IESO_OFF_1H                                0x7F    /* Disabled */
1186
#define _IESO_ON_1H                                 0xFF    /* Enabled */
1187
 
1 tk 1188
/* Power Up Timer 2L options */
305 stryd_one 1189
#define _PWRT_OFF_2L                                0xFF    /* Disabled */
1190
#define _PWRT_ON_2L                                 0xFE    /* Enabled */
1 tk 1191
 
1192
/* Brown Out Detect 2L options */
305 stryd_one 1193
#define _BOREN_OFF_2L                               0xF9    /* Disabled */
1194
#define _BOREN_ON_2L                                0xFB    /* SBOREN Enabled */
1195
#define _BOREN_NOSLP_2L                             0xFD    /* Enabled except SLEEP, SBOREN Disabled */
1196
#define _BOREN_SBORDIS_2L                           0xFF    /* Enabled, SBOREN Disabled */
1 tk 1197
 
1198
/* Brown Out Voltage 2L options */
305 stryd_one 1199
#define _BORV_46_2L                                 0xE7    /* 4.6V */
1200
#define _BORV_43_2L                                 0xEF    /* 4.3V */
1201
#define _BORV_28_2L                                 0xF7    /* 2.8V */
1202
#define _BORV_21_2L                                 0xFF    /* 2.1V */
1 tk 1203
 
1204
/* Watchdog Timer 2H options */
305 stryd_one 1205
#define _WDT_ON_2H                                  0xFF    /* Enabled */
1206
#define _WDT_DISABLED_CONTROLLED_2H                 0xFE    /* Disabled-Controlled by SWDTEN bit */
1 tk 1207
 
1208
/* Watchdog Postscaler 2H options */
305 stryd_one 1209
#define _WDTPS_1_32768_2H                           0xFF    /* 1:32768 */
1210
#define _WDTPS_1_16384_2H                           0xFD    /* 1:16384 */
1211
#define _WDTPS_1_8192_2H                            0xFB    /* 1:8192 */
1212
#define _WDTPS_1_4096_2H                            0xF9    /* 1:4096 */
1213
#define _WDTPS_1_2048_2H                            0xF7    /* 1:2048 */
1214
#define _WDTPS_1_1024_2H                            0xF5    /* 1:1024 */
1215
#define _WDTPS_1_512_2H                             0xF3    /* 1:512 */
1216
#define _WDTPS_1_256_2H                             0xF1    /* 1:256 */
1217
#define _WDTPS_1_128_2H                             0xEF    /* 1:128 */
1218
#define _WDTPS_1_64_2H                              0xED    /* 1:64 */
1219
#define _WDTPS_1_32_2H                              0xEB    /* 1:32 */
1220
#define _WDTPS_1_16_2H                              0xE9    /* 1:16 */
1221
#define _WDTPS_1_8_2H                               0xE7    /* 1:8 */
1222
#define _WDTPS_1_4_2H                               0xE5    /* 1:4 */
1223
#define _WDTPS_1_2_2H                               0xE3    /* 1:2 */
1224
#define _WDTPS_1_1_2H                               0xE1    /* 1:1 */
1 tk 1225
 
305 stryd_one 1226
 
1 tk 1227
/* CCP2 Mux 3H options */
305 stryd_one 1228
#define _CCP2MUX_RC1_3H                             0xFF    /* RC1 */
1229
#define _CCP2MUX_RB3_3H                             0xFE    /* RB3 */
1 tk 1230
 
305 stryd_one 1231
/* PortB A/D Enable 3H options */
1232
#define _PBADEN_PORTB_4_0__CONFIGURED_AS_ANALOG_INPUTS_ON_RESET_3H  0xFF    /* PORTB<4:0> configured as analog inputs on RESET */
1233
#define _PBADEN_PORTB_4_0__CONFIGURED_AS_DIGITAL_I_O_ON_RESET_3H    0xFD    /* PORTB<4:0> configured as digital I/O on RESET */
1234
 
1235
/* Low Power Timer1 Osc enable 3H options */
1236
#define _LPT1OSC_ON_3H                              0xFF    /* Enabled */
1237
#define _LPT1OSC_OFF_3H                             0xFB    /* Disabled */
1238
 
1239
/* Master Clear Enable 3H options */
1240
#define _MCLRE_MCLR_ON_RE3_OFF_3H                   0xFF    /* MCLR Enabled,RE3 Disabled */
1241
#define _MCLRE_MCLR_OFF_RE3_ON_3H                   0x7F    /* MCLR Disabled,RE3 Enabled */
1242
 
1243
 
1244
/* Stack Overflow Reset 4L options */
1245
#define _STVR_ON_4L                                 0xFF    /* Enabled */
1246
#define _STVR_OFF_4L                                0xFE    /* Disabled */
1247
 
1 tk 1248
/* Low Voltage Program 4L options */
305 stryd_one 1249
#define _LVP_ON_4L                                  0xFF    /* Enabled */
1250
#define _LVP_OFF_4L                                 0xFB    /* Disabled */
1 tk 1251
 
305 stryd_one 1252
/* Extended CPU Enable 4L options */
1253
#define _XINST_OFF_4L                               0xBF    /* Disabled */
1254
#define _XINST_ON_4L                                0xFF    /* Enabled */
1255
 
1 tk 1256
/* Background Debug 4L options */
305 stryd_one 1257
#define _DEBUG_ON_4L                                0x7F    /* Enabled */
1258
#define _DEBUG_OFF_4L                               0xFF    /* Disabled */
1 tk 1259
 
305 stryd_one 1260
/* Code Protect 00800-01FFF 5L options */
1261
#define _CP_0_OFF_5L                                0xFF    /* Disabled */
1262
#define _CP_0_ON_5L                                 0xFE    /* Enabled */
1 tk 1263
 
1264
/* Code Protect 02000-03FFF 5L options */
305 stryd_one 1265
#define _CP_1_OFF_5L                                0xFF    /* Disabled */
1266
#define _CP_1_ON_5L                                 0xFD    /* Enabled */
1 tk 1267
 
1268
/* Code Protect 04000-05FFF 5L options */
305 stryd_one 1269
#define _CP_2_OFF_5L                                0xFF    /* Disabled */
1270
#define _CP_2_ON_5L                                 0xFB    /* Enabled */
1 tk 1271
 
1272
/* Code Protect 06000-07FFF 5L options */
305 stryd_one 1273
#define _CP_3_OFF_5L                                0xFF    /* Disabled */
1274
#define _CP_3_ON_5L                                 0xF7    /* Enabled */
1 tk 1275
 
305 stryd_one 1276
 
1 tk 1277
/* Data EE Read Protect 5H options */
305 stryd_one 1278
#define _CPD_OFF_5H                                 0xFF    /* Disabled */
1279
#define _CPD_ON_5H                                  0x7F    /* Enabled */
1 tk 1280
 
1281
/* Code Protect Boot 5H options */
305 stryd_one 1282
#define _CPB_OFF_5H                                 0xFF    /* Disabled */
1283
#define _CPB_ON_5H                                  0xBF    /* Enabled */
1 tk 1284
 
1285
 
305 stryd_one 1286
/* Table Write Protect 00800-01FFF 6L options */
1287
#define _WRT_0_OFF_6L                               0xFF    /* Disabled */
1288
#define _WRT_0_ON_6L                                0xFE    /* Enabled */
1289
 
1 tk 1290
/* Table Write Protect 02000-03FFF 6L options */
305 stryd_one 1291
#define _WRT_1_OFF_6L                               0xFF    /* Disabled */
1292
#define _WRT_1_ON_6L                                0xFD    /* Enabled */
1 tk 1293
 
1294
/* Table Write Protect 04000-05FFF 6L options */
305 stryd_one 1295
#define _WRT_2_OFF_6L                               0xFF    /* Disabled */
1296
#define _WRT_2_ON_6L                                0xFB    /* Enabled */
1 tk 1297
 
1298
/* Table Write Protect 06000-07FFF 6L options */
305 stryd_one 1299
#define _WRT_3_OFF_6L                               0xFF    /* Disabled */
1300
#define _WRT_3_ON_6L                                0xF7    /* Enabled */
1 tk 1301
 
305 stryd_one 1302
 
1 tk 1303
/* Data EE Write Protect 6H options */
305 stryd_one 1304
#define _WRTD_OFF_6H                                0xFF    /* Disabled */
1305
#define _WRTD_ON_6H                                 0x7F    /* Enabled */
1 tk 1306
 
1307
/* Table Write Protect Boot 6H options */
305 stryd_one 1308
#define _WRTB_OFF_6H                                0xFF    /* Disabled */
1309
#define _WRTB_ON_6H                                 0xBF    /* Enabled */
1 tk 1310
 
1311
/* Config. Write Protect 6H options */
305 stryd_one 1312
#define _WRTC_OFF_6H                                0xFF    /* Disabled */
1313
#define _WRTC_ON_6H                                 0xDF    /* Enabled */
1 tk 1314
 
1315
 
305 stryd_one 1316
/* Table Read Protect 00800-01FFF 7L options */
1317
#define _EBTR_0_OFF_7L                              0xFF    /* Disabled */
1318
#define _EBTR_0_ON_7L                               0xFE    /* Enabled */
1319
 
1 tk 1320
/* Table Read Protect 02000-03FFF 7L options */
305 stryd_one 1321
#define _EBTR_1_OFF_7L                              0xFF    /* Disabled */
1322
#define _EBTR_1_ON_7L                               0xFD    /* Enabled */
1 tk 1323
 
1324
/* Table Read Protect 04000-05FFF 7L options */
305 stryd_one 1325
#define _EBTR_2_OFF_7L                              0xFF    /* Disabled */
1326
#define _EBTR_2_ON_7L                               0xFB    /* Enabled */
1 tk 1327
 
1328
/* Table Read Protect 06000-07FFF 7L options */
305 stryd_one 1329
#define _EBTR_3_OFF_7L                              0xFF    /* Disabled */
1330
#define _EBTR_3_ON_7L                               0xF7    /* Enabled */
1 tk 1331
 
305 stryd_one 1332
 
1 tk 1333
/* Table Read Protect Boot 7H options */
305 stryd_one 1334
#define _EBTRB_OFF_7H                               0xFF    /* Disabled */
1335
#define _EBTRB_ON_7H                                0xBF    /* Enabled */
1 tk 1336
 
1337
 
305 stryd_one 1338
/* Device ID bytes */
1339
#define _DEVID1     0x3FFFFE
1340
#define _DEVID2     0x3FFFFF
1 tk 1341
 
1342
 
305 stryd_one 1343
/* Location of User ID words */
1344
#define __IDLOC0    0x200000
1345
#define __IDLOC1    0x200001
1346
#define __IDLOC2    0x200002
1347
#define __IDLOC3    0x200003
1348
#define __IDLOC4    0x200004
1349
#define __IDLOC5    0x200005
1350
#define __IDLOC6    0x200006
1351
#define __IDLOC7    0x200007
1352
 
1353
#endif // __PIC18F4620__