Commit 4aaa6c69 authored by Tristan Gingold's avatar Tristan Gingold

wr2rf.c: decode nco-reset-ctrl values

parent ff7b8a9a
......@@ -583,53 +583,64 @@ nco_reset_ctrl (struct libwr2rf_dev *dev, int argc, char **argv)
if (argc != 1 && argc != 3)
goto usage;
if (argc == 1) {
printf ("nco_reset_ctrl=%02x \n", libwr2rf_read16(dev, addr));
return;
if (argc == 3) {
if (strcmp(argv[2], "on") == 0)
set = 1;
else if (strcmp(argv[2], "off") == 0)
set = 0;
else
goto usage;
if (strcmp (argv[1], "dds_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_DDS;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_DDS;
} else if (strcmp (argv[1], "rf1nco_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH1;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH1;
} else if (strcmp (argv[1], "rf2nco_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH2;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH2;
} else if (strcmp (argv[1], "rf1_t1_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF1_TRIG1;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF1_TRIG1;
} else if (strcmp (argv[1], "rf2_t1_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF2_TRIG1;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF2_TRIG1;
} else if (strcmp (argv[1], "soft_nco_reset") == 0) {
if (set == 1) // autoclr register
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_SOFT;
} else {
printf ("Unexpected input:\n");
goto usage;
}
libwr2rf_write16(dev, addr, v);
}
if (strcmp(argv[2], "on") == 0)
set = 1;
else if (strcmp(argv[2], "off") == 0)
set = 0;
else
goto usage;
if (strcmp (argv[1], "dds_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_DDS;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_DDS;
} else if (strcmp (argv[1], "rf1nco_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH1;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH1;
} else if (strcmp (argv[1], "rf2nco_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH2;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH2;
} else if (strcmp (argv[1], "rf1_t1_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF1_TRIG1;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF1_TRIG1;
} else if (strcmp (argv[1], "rf2_t1_mask") == 0) {
if (set == 1)
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF2_TRIG1;
else
v = v & ~WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF2_TRIG1;
} else if (strcmp (argv[1], "soft_nco_reset") == 0) {
if (set == 1) // autoclr register
v = v | WR2RF_CTRL_REGS_NCO_RESET_CTRL_SOFT;
} else {
printf ("Unexpected input:\n");
goto usage;
}
v = libwr2rf_read16(dev, addr);
libwr2rf_write16(dev, addr, v);
printf ("nco_reset_ctrl=%02x \n", libwr2rf_read16(dev, addr));
printf ("nco_reset_ctrl=%02x", v);
if (v & WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_DDS)
printf (" dds_mask");
if (v & WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH1)
printf (" rf1nco_mask");
if (v & WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH2)
printf (" rf2nco_mask");
if (v & WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF1_TRIG1)
printf (" rf1_t1_mask");
if (v & WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RF2_TRIG1)
printf (" rf2_t1_mask");
printf ("\n");
return;
usage:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment