Probleem met bitwise operators

Wie bang is om te vragen schaamt zich om te leren.
Plaats reactie
mcu_boytje
Berichten: 11
Lid geworden op: ma 6 apr 2009, 15:33
Locatie: GENT

Probleem met bitwise operators

Bericht door mcu_boytje »

Hallo iedereen,

Vraag
====

Ik zou graag weten als ik dat juist heb toegepast in de functies die ik nodig heb voor het setten en resetten van bits.

& = bitwise resetten van een bit
| = bitwise setten van een bit
~ = toggelen van een bit
^ = inverteren van een bit

Hier is datgene wat ik heb geprobeerd en zou graag weten als ik dat juist heb gedaan en dat het misschien nog op een andere manier kan worden gedaan.

Ik wil met control register van mijn DDS een setup uitvoeren:

B28 = 0
HLB = 1
FSELECT = 1
RESET = 0
OPBITEN = 0
MODE = 0

This is the 16 bit word:

0 0 0 1 1 X 0 0 X X 0 0 0 X 0 0 0

Dat is mijn code: (denk in PICBASIC is dat bijna hetzelfde)
======================================

Code: Selecteer alles


#define   FREQ0        0x4000           // Address Freq0 = 0100 0000 0000 0000 

   // AD9833 Control Register bits 
   #define   B28          (1 << 13)         // bit 13 B28 
   #define   HLB          (1 << 12)         // bit 12 HLB 
   #define   FSELECT   (1 << 11)         // bit 11 FSELECT 
   #define   RESET       (1 << 8)          // bit 8 RESET 
   #define   OPBITEN   (1 << 5)          // bit 5 OPBITEN 
   #define   MODE        (1) 
   #define     SINE           1 
   
   // Dat is een SPI commando in MikroC in PIC basic denk ik dat het
   // SHOUT is
   SPI_Write(FREQ0 & B28 | HLB | FSELECT & RESET & OPBITEN & 
   MODE); 

Plaats reactie