Kā piekļūt bitfield ar MSP430, kas IAR C

C

chen_Analog

Guest
Kā piekļūt MSP430 bitfield izmantot IAR C. Piemēram, es vēlos, lai uzstādītu vai atjaunotu jebkuru atsevišķu bitu no c kodu.

 
Dariet to definē:

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

Tad jūs tikko ievietot pārstrādātājs galvene:

# Ietver "msp430x14x.h"Tagad, ja vēlaties iestatīt bit 0 jebkuru REĢISTRĒTIES mainīgo vienkārši darīt:

bit_set (ANY_REGISTER, BIT0);Par RESET

bit_clear (ANY_REGISTER, BIT0);par testu, ja bits ir iestatīts

ja (bit_test (ANY_REGISTER, BIT0))
(
)par testu, ja mazliet ir skaidrs

ja ()! bit_test (ANY_REGISTER, BIT0)
(
)Darīt to pašu attiecībā uz
BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8, BIT9, BITA, BITB, BITC, BITD, BITE, BITF
Tie ir definēti procesors header patīk ....

# 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

 
Es zinu šo metodi, bet es domāju, ka tas joprojām nav nedaudz pieeja, bet kopumā reģistra pieejamību

Turpmāk ir piemērs no mazliet piekļūt:
__no_init gaistošo savienība
(
neparakstīts char IE1
struktūrai
(
neparakstīts char WDTIE: 1;
neparakstīts char OFIE: 1;
neparakstīts char: 2;
neparakstīts char NMIIE: 1;
neparakstīts char ACCVIE: 1;
neparakstīts char URXIE0: 1;
neparakstīts char UTXIE0: 1;
) IE1_bit;
) @ 0x0000;

Iekļaujot iepriekš kodu lietotāja kodu, ir iespējams piekļūt vai nu visa reģistrā vai jebkura persona bitu (vai birtfields) no C koda šādi "

/ / Viss reģistrs piekļuve

IE1 = 0x1234;

/ / Bitfield piekļūšanas

IE1.WDTIE = 1;

Mēģinu, bet nevar panākumus.Es nezinu, kāpēc?

 
chen_Analog,
Es uzskatu, ka jūs risinājums ir izmantot makro.

Pēc mana proyects ar MSP430 es varu izmantot ....

# Define RTSon () P3OUT! = 0x04 / / ir bit4 ar P3 = 1
# Define RTSoff () P3OUT & = ~ 0x04 / / deing bit4 ar P3 = 0

tad

galvenais ()
(
...
...
/ / Tagad es gribu RTS = 1
RTSon ();
....
.....
/ / Tagad RTS = 0
RTSoff ();
....
....)

Šis piemērs jūs varat pieteikties uz savu darbu
ti,

Best Regards
FSio

 

Welcome to EDABoard.com

Sponsor

Back
Top