⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 microtune_xxxx_eval_board.cc

📁 gnuradio软件无线电源程序.现在的手机多基于软件无线电
💻 CC
字号:
/* -*- c++ -*- *//* * Copyright 2001,2004 Free Software Foundation, Inc. *  * This file is part of GNU Radio *  * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. *  * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */#include "microtune_xxxx_eval_board.h"#include "microtune_eval_board_defs.h"#include "microtune_xxxx.h"#include "ppio.h"#include "i2c_bitbang.h"#include "i2c_bbio_pp.h"#include <cmath>static int AGC_DAC_I2C_ADDR =	0x2C;microtune_xxxx_eval_board::microtune_xxxx_eval_board (int which_pp){  d_ppio = make_ppio (which_pp);  d_i2c = make_i2c_bitbang (make_i2c_bbio_pp (d_ppio));  d_tuner = 0;}microtune_xxxx_eval_board::~microtune_xxxx_eval_board (){  delete d_tuner;  d_tuner = 0;}//! is the eval board present?bool microtune_xxxx_eval_board::board_present_p (){  bool result = true;  d_ppio->lock ();  int t = d_ppio->read_status ();  if ((t & UT_SP_SHOULD_BE_ZERO) != 0      || (t & UT_SP_SHOULD_BE_ONE) != UT_SP_SHOULD_BE_ONE)    result = false;  // could also see if SCL is looped back or not, but that seems like overkill  d_ppio->unlock ();  return result;}/* * ---------------------------------------------------------------- *			    AGC stuff * * We're using a MAX518 8-bit 5V dual dac for setting the AGC's * ---------------------------------------------------------------- */void microtune_xxxx_eval_board::write_dac (int which, int value){  unsigned char	cmd[2];  cmd[0] = which & 1;  cmd[1] = value;  d_i2c->write (AGC_DAC_I2C_ADDR, cmd, sizeof (cmd));}void microtune_xxxx_eval_board::write_both_dacs (int value0, int value1){  unsigned char	cmd[4];  cmd[0] = 0;  cmd[1] = value0;  cmd[2] = 1;  cmd[3] = value1;  d_i2c->write (AGC_DAC_I2C_ADDR, cmd, sizeof (cmd));}static int scale_volts (float volts){  int	n;  n = (int) rint (volts * (256 / 5.0));  if (n < 0)    n = 0;  if (n > 255)    n = 255;  return n;}voidmicrotune_xxxx_eval_board::set_RF_AGC_voltage (float volts){  write_dac (0, scale_volts (volts));}void microtune_xxxx_eval_board::set_IF_AGC_voltage (float volts){  write_dac (1, scale_volts (volts));}// delegate to tunerboolmicrotune_xxxx_eval_board::set_RF_freq (double freq, double *actual_freq){  return d_tuner->set_RF_freq (freq, actual_freq);}  doublemicrotune_xxxx_eval_board::set_RF_freq (double freq){  return d_tuner->set_RF_freq (freq);}boolmicrotune_xxxx_eval_board::pll_locked_p (){  return d_tuner->pll_locked_p ();}doublemicrotune_xxxx_eval_board::get_output_freq (){  return d_tuner->get_output_freq ();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -