3 * Copyright 2003 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
26 sdr_1000_base::sdr_1000_base (int which_pp)
28 d_ppio = make_ppio (which_pp);
36 sdr_1000_base::~sdr_1000_base ()
41 sdr_1000_base::reset ()
44 d_ppio->write_control (0x0F);
46 write_latch (L_EXT, 0x00, 0xff);
47 write_latch (L_BAND, 0x00, 0xff);
48 write_latch (L_DDS0, 0x80, 0xff); // hold DDS in reset
49 write_latch (L_DDS1, 0x00, 0xff);
54 sdr_1000_base::write_latch (int which, int value, int mask)
56 if (!(0 <= which && which <= 3))
60 d_shadow[which] = (d_shadow[which] & ~mask) | (value & mask);
61 d_ppio->write_data (d_shadow[which]);
62 d_ppio->write_control (0x0F ^ (1 << which));
63 d_ppio->write_control (0x0F);