Gast
#1884196
hi,
möchte gerne 3 register mit jeweils 32bits jeweils einzeln ansprechen
können und würd ganz gern ein struct mit bitfeldern verwenden (speicher
sparen)
typedef struct
{
// R0
unsigned r0_31_unused : 1;
unsigned int_val : 16;
unsigned fract_val : 12;
unsigned r0_ctrl : 3;
// R1
unsigned r1_31_28_unused : 4;
unsigned prescaler : 1;
unsigned phase_val : 12;
unsigned modulus_val : 12;
unsigned r1_ctrl : 3;
// R2
unsigned r2_31_unused : 1;
unsigned noise_mode : 2;
unsigned mux_out : 3;
unsigned ref_doubler_en : 1;
unsigned ref_divider_en : 1;
unsigned r_divider : 10;
unsigned double_buf_en : 1;
unsigned charge_pump_current : 4;
unsigned lock_detect_fract_en : 1;
unsigned lock_detect_precision_en : 1;
unsigned phase_detect_polarity : 1;
unsigned power_down : 1;
unsigned charge_pump_threestate : 1;
unsigned counter_reset : 1;
unsigned r2_ctrl : 3;
} t_adf4350_regs;
t_adf4350_regs test;
void test_init(void)
{
test.r2_31_unused = 1;
test.r2_ctrl = 3;
}
... wenn ich jetzt testweise einige bits setze, steht nur müll im
speicher (00 00 00 00, 00 00 00 00, 01 00 00 60)
kann das so funktionieren, bzw. was mach ich falsch?
thx
neubi