[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] reading and writing registers
From: |
Eric Blossom |
Subject: |
Re: [Discuss-gnuradio] reading and writing registers |
Date: |
Fri, 3 Nov 2006 13:34:00 -0800 |
User-agent: |
Mutt/1.5.9i |
On Fri, Nov 03, 2006 at 02:43:46AM -0800, seph 004 wrote:
> Hi
>
> I am having some trouble trying to get register writing and reading
> from the C++ level to work. I've created two methods:
>
> for writing
>
> static bool
> write_a_reg (usrp_basic *u, int address, int amount)
> {
> bool isit = u->_write_fpga_reg (address, amount);
>
> return isit;
> }
>
> for reading
>
> int
> read_a_reg (usrp_basic *u, int address)
> {
> int val = u->_read_fpga_reg (address);
>
> return val;
> }
> When I use the write method:
>
> bool fine2 = write_a_reg (urx, 78, 60);
>
> The returned boolean indicates that the write was successful. If I try to
> read the same register though:
>
> int value = read_a_reg (urx, 78);
>
> it always returns zero no matter what I put in. The urx is the
> handle of a usrp_standard_rx object, and if I'm not mistaken,
> register number 78 (`FR_USER_14) shoul be free to use. What am I
> doing wrong?
> Regards
> Lance
Assuming that all registers are readable, or that they
are in the same address space as the writable registers would be a
mistake.
Try reading from registers 1, 2 or 3. See
usrp/firmware/include/fpga_regs_standard.h, down toward the bottom.
Please also note that writing random values into random registers can
lead to permanent damage. FR_USER_0 through FR_USER_15 are safe to
write with the .rbf's that we distribute. We don't pay any attention
to them.
Eric