Come BITFIELD l'accesso dei MSP430 in IAR C

C

chen_Analog

Guest
Come accedere al BITFIELD di MSP430 utilizzando IAR C. per esempio, voglio impostare o reimpostare di ogni singolo bit di codice C.

 
Fare questo definisce:

# define bit_test (A, B) (A & B)
# define bit_set (A, B) A | = B
# define bit_clear (A, B) ~ = A & B

Quindi si ha sufficiente inserire l'intestazione del processore:

# include "msp430x14x.h"Ora, se si desidera impostare il bit 0 di qualsiasi registro di variabile semplice farlo:

bit_set (ANY_REGISTER, bit0);Per RESET

bit_clear (ANY_REGISTER, bit0);per la prova se il bit è impostato

if (bit_test (ANY_REGISTER, bit0))
(
)per la prova se il bit è chiaro

if (! bit_test (ANY_REGISTER, bit0))
(
)Fare lo stesso per
BIT1, Bit2, Bit3, BIT4, bit5, Bit6, bit7, BIT8, Bit9, BITA, BITB, BITC, BITD, BITE, BITF
Queste sono definite in intestazione processore like it ....

# define bit0 (0x0001)
# define BIT1 (0x0002)
# define Bit2 (0x0004)
# define Bit3 (0x0008)
# define BIT4 (0x0010)
# define bit5 (0x0020)
# define Bit6 (0x0040)
# define bit7 (0x0080)
# define BIT8 (0x0100)
# define Bit9 (0x0200)
# define BITA (0x0400)
# define BITB (0x0800)
# define BITC (0x1000)
# define BITD (0x2000)
# define BITE (0x4000)
# define BITF (0x8000)

leomecma

 
So che questo metodo, ma penso che questo non è ancora accesso po
', ma l'accesso registrare tutto

Di seguito è riportato l'esempio di accesso ai bit:
__no_init unione volatile
(
unsigned char IE1
struct
(
unsigned char WDTIE: 1;
unsigned char OFIE: 1;
unsigned char: 2;
unsigned char NMIIE: 1;
unsigned char ACCVIE: 1;
unsigned char URXIE0: 1;
unsigned char UTXIE0: 1;
IE1_bit);
@ 0x0000);

Inserendo il codice di cui sopra nel codice utente è possibile accedere sia al registro intero o singoli bit (o birtfields) da codice C come segue "

/ / accesso register tutto

IE1 = 0x1234;

/ / Accede BITFIELD

IE1.WDTIE = 1;

Ho provato ma non successo.Non so perché?

 
chen_Analog,
Credo che tu soluzione è quella di utilizzare le macro.

Alla mia Progetti con MSP430 Io uso ....

# define RTSon () P3OUT! = 0x04 / / essere bit4 di P3 = 1
# define RTSoff () P3OUT & = ~ 0x04 / / deing bit4 di P3 = 0

allora

main ()
(
...
...
/ / ora voglio RTS = 1
RTSon ();
....
.....
/ / ora RTS = 0
RTSoff ();
....
....)

Questo esempio è possibile applicare al tuo lavoro
cioè

Con i migliori saluti
UFAS

 

Welcome to EDABoard.com

Sponsor

Back
Top