Renesas TM V.3.20A Spezifikationen Seite 236

  • Herunterladen
  • Zu meinen Handbüchern hinzufügen
  • Drucken
  • Seite
    / 762
  • Inhaltsverzeichnis
  • LESEZEICHEN
  • Bewertet. / 5. Basierend auf Kundenbewertungen
Seitenansicht 235
Renesas Technology, Tools FAQs
Last Updated: August 7, 2000
Document Number: 01051080_e
Q.
How can I access a bit field with CC32R?
A.
Use one of the following methods to access a bit field.
Access with indirect half-words (see #1 below)1.
Macro Method: using macros for better code efficiency (see #2 below)2.
#1. Accessing bit fields by indirect half-word access method
/* bit field declaration */
typedef union
{
unsigned long Word; /* word data access use */
struct
{
unsigned short dummy7bit :7; /* Extra (fixed to 0) */
unsigned short b8 :1; /* bit No.8 */
unsigned short b7 :1; /* bit No.7 */
unsigned short b6 :1; /* bit No.6 */
unsigned short b5 :1; /* bit No.5 */
unsigned short b4 :1; /* bit No.4 */
unsigned short b3 :1; /* bit No.3 */
unsigned short b2 :1; /* bit No.2 */
unsigned short b1 :1; /* bit No.1 */
unsigned short b0 :1; /* bit No.0 */
} Bit;
} TypeP1;
/* address declaration */
#define io_P1 (*(volatile TypeP1 *)0x00800100)
/* example function for accessing bit field indirectly */
void
foo1()
{
TypeP1 work;
/* write to bit No. 8 */
work.Word = io_P1.Word; /* to read out half-word */
work.Bit.b8 = 0;
io_P1.Word = work.Word; /* to write in half-word */
/* write to bit No. 5 */
work.Word = io_P1.Word; /* to read out half-word */
work.Bit.b5 = 0;
io_P1.Word = work.Word; /* to write in half-word */
}
#2. Using a macro
Seitenansicht 235
1 2 ... 231 232 233 234 235 236 237 238 239 240 241 ... 761 762

Kommentare zu diesen Handbüchern

Keine Kommentare