diff options
author | Josh Blum <josh@joshknows.com> | 2011-02-03 15:28:00 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-02-03 15:28:00 -0800 |
commit | 1c8626e40cc9e5243cea0956c6d35d9d96c08d38 (patch) | |
tree | f1621dbd71469508e054dcf892d043d33c4aee98 /host/lib/usrp/usrp1 | |
parent | 6ccd8fc94607d5e81ac4c8a819e9ce89966a6692 (diff) | |
parent | 67bba008255f98367cf19dba518dceb40f763c25 (diff) | |
download | uhd-1c8626e40cc9e5243cea0956c6d35d9d96c08d38.tar.gz uhd-1c8626e40cc9e5243cea0956c6d35d9d96c08d38.tar.bz2 uhd-1c8626e40cc9e5243cea0956c6d35d9d96c08d38.zip |
Merge branch 'multi_usrp_only' into convert_fc64
Diffstat (limited to 'host/lib/usrp/usrp1')
-rw-r--r-- | host/lib/usrp/usrp1/clock_ctrl.cpp | 21 | ||||
-rw-r--r-- | host/lib/usrp/usrp1/clock_ctrl.hpp | 7 | ||||
-rw-r--r-- | host/lib/usrp/usrp1/mboard_impl.cpp | 8 |
3 files changed, 26 insertions, 10 deletions
diff --git a/host/lib/usrp/usrp1/clock_ctrl.cpp b/host/lib/usrp/usrp1/clock_ctrl.cpp index 68c5f5320..156f2b0c4 100644 --- a/host/lib/usrp/usrp1/clock_ctrl.cpp +++ b/host/lib/usrp/usrp1/clock_ctrl.cpp @@ -29,32 +29,33 @@ using namespace uhd; /*********************************************************************** * Constants **********************************************************************/ -static const double master_clock_rate = 64e6; +static const double default_master_clock_rate = 64e6; /*********************************************************************** * Clock Control Implementation **********************************************************************/ class usrp1_clock_ctrl_impl : public usrp1_clock_ctrl { public: - usrp1_clock_ctrl_impl(usrp1_iface::sptr iface) - { - _iface = iface; + usrp1_clock_ctrl_impl(usrp1_iface::sptr iface): _iface(iface){ + this->set_master_clock_freq(default_master_clock_rate); } - double get_master_clock_freq(void) - { - return master_clock_rate; + void set_master_clock_freq(double freq){ + _freq = freq; + } + + double get_master_clock_freq(void){ + return _freq; } private: usrp1_iface::sptr _iface; - + double _freq; }; /*********************************************************************** * Clock Control Make **********************************************************************/ -usrp1_clock_ctrl::sptr usrp1_clock_ctrl::make(usrp1_iface::sptr iface) -{ +usrp1_clock_ctrl::sptr usrp1_clock_ctrl::make(usrp1_iface::sptr iface){ return sptr(new usrp1_clock_ctrl_impl(iface)); } diff --git a/host/lib/usrp/usrp1/clock_ctrl.hpp b/host/lib/usrp/usrp1/clock_ctrl.hpp index 366869dab..645472f02 100644 --- a/host/lib/usrp/usrp1/clock_ctrl.hpp +++ b/host/lib/usrp/usrp1/clock_ctrl.hpp @@ -40,6 +40,13 @@ public: static sptr make(usrp1_iface::sptr iface); /*! + * Set the rate of the fpga clock line. + * Note: does not really set, its all software. + * \param freq the new clock rate in Hz + */ + virtual void set_master_clock_freq(double freq) = 0; + + /*! * Get the rate of the fpga clock line. * \return the fpga clock rate in Hz */ diff --git a/host/lib/usrp/usrp1/mboard_impl.cpp b/host/lib/usrp/usrp1/mboard_impl.cpp index 23c8f03c4..6d5bf466d 100644 --- a/host/lib/usrp/usrp1/mboard_impl.cpp +++ b/host/lib/usrp/usrp1/mboard_impl.cpp @@ -317,6 +317,10 @@ void usrp1_impl::mboard_get(const wax::obj &key_, wax::obj &val) val = _soft_time_ctrl->get_time(); return; + case MBOARD_PROP_CLOCK_RATE: + val = _clock_ctrl->get_master_clock_freq(); + return; + default: UHD_THROW_PROP_GET_ERROR(); } } @@ -379,6 +383,10 @@ void usrp1_impl::mboard_set(const wax::obj &key, const wax::obj &val) _soft_time_ctrl->set_time(val.as<time_spec_t>()); return; + case MBOARD_PROP_CLOCK_RATE: + _clock_ctrl->set_master_clock_freq(val.as<double>()); + return; + default: UHD_THROW_PROP_SET_ERROR(); } } |