discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Underrun (using libusrp only)


From: Per Zetterberg
Subject: [Discuss-gnuradio] Underrun (using libusrp only)
Date: Tue, 19 Feb 2008 13:59:45 +0100

Dear All,

I am trying to send a square-wave from the USRP DAC (basic TX board). I have
made the the following little C++ program - but it gives me underruns
whenever I set the interpolation factor less than 64. Any help is
appreciated!

BR/
Per Zetterberg

======================================================

#include <usrp_standard.h>
#include <iostream>

using namespace std;

#define NO_ARGS 1
#define VALUE 4096
#define VALUE8 VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE
#define VALUEm8 -VALUE,-VALUE,-VALUE,-VALUE,-VALUE,-VALUE,-VALUE,-VALUE
#define VALUE256   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8,\
                   VALUE8,VALUE8,VALUEm8,VALUEm8 \

#define BUFFSIZE 1024

short Buffer1[BUFFSIZE]={VALUE256,VALUE256,VALUE256,VALUE256};
short Buffer2[BUFFSIZE]={VALUE256,VALUE256,VALUE256,VALUE256};


usrp_standard_tx* tx;

int main(int argc,char **argv)
{

  bool underrun;
  tx = usrp_standard_tx::make(0,16,2,47768);

  tx->set_tx_freq (0,0);  // chan: [0,1]
  tx->set_tx_freq (1,0);  // chan: [0,1]


  tx->start();

  while (1) {
    tx->write((void *) Buffer1,BUFFSIZE*2,&underrun);
    if (underrun)
      cout << "Underrrun \n";
    tx->write((void *) Buffer2,BUFFSIZE*2,&underrun);
    if (underrun)
      cout << "Underrrun \n";
  }
 
  return 0;
}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]