From 9544ad10c9f8df77aa4d8c03b497a9a6fb6f20f9 Mon Sep 17 00:00:00 2001 From: tecodev Date: Wed, 4 Oct 2006 08:55:09 +0000 Subject: [PATCH] * device/include/pic/{pic16f84.h,pic16f84a.h}, * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits from patch #1522504, thanks to Robas Teodor git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4400 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 6 ++++ device/include/pic/pic16f84.h | 46 +++++++++++++++++++++++++++++++ device/include/pic/pic16f84a.h | 46 +++++++++++++++++++++++++++++++ device/lib/pic/libdev/pic16f84.c | 8 ++++-- device/lib/pic/libdev/pic16f84a.c | 8 ++++-- 5 files changed, 108 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index e5b4a62b..ec990fd8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-10-04 Raphael Neider + + * device/include/pic/{pic16f84.h,pic16f84a.h}, + * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits + from patch #1522504, thanks to Robas Teodor + 2006-10-02 Maarten Brock * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which diff --git a/device/include/pic/pic16f84.h b/device/include/pic/pic16f84.h index af917e95..7bbefc3a 100644 --- a/device/include/pic/pic16f84.h +++ b/device/include/pic/pic16f84.h @@ -265,4 +265,50 @@ extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; #define RP1 STATUS_bits.RP1 #define IRP STATUS_bits.IRP +// ----- 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 :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 + +// ----- 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 + #endif diff --git a/device/include/pic/pic16f84a.h b/device/include/pic/pic16f84a.h index 2324782a..5b8e7d0c 100644 --- a/device/include/pic/pic16f84a.h +++ b/device/include/pic/pic16f84a.h @@ -263,4 +263,50 @@ extern volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; #define RP1 STATUS_bits.RP1 #define IRP STATUS_bits.IRP +// ----- 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 :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 + +// ----- 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 + #endif diff --git a/device/lib/pic/libdev/pic16f84.c b/device/lib/pic/libdev/pic16f84.c index 5f9357a1..8c1245bf 100644 --- a/device/lib/pic/libdev/pic16f84.c +++ b/device/lib/pic/libdev/pic16f84.c @@ -25,8 +25,10 @@ __sfr __at (EECON2_ADDR) EECON2; // // bitfield definitions // -volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits; -volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits; +volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits; +volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits; volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits; -volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; +volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; +volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits; +volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits; diff --git a/device/lib/pic/libdev/pic16f84a.c b/device/lib/pic/libdev/pic16f84a.c index 71de3d10..2cfe8540 100644 --- a/device/lib/pic/libdev/pic16f84a.c +++ b/device/lib/pic/libdev/pic16f84a.c @@ -25,8 +25,10 @@ __sfr __at (EECON2_ADDR) EECON2; // // bitfield definitions // -volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits; -volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits; +volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits; +volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits; volatile __OPTION_REG_bits_t __at(OPTION_REG_ADDR) OPTION_REG_bits; -volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; +volatile __STATUS_bits_t __at(STATUS_ADDR) STATUS_bits; +volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits; +volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits; -- 2.30.2