diff --git a/src/periph/fpga.cpp b/src/periph/fpga.cpp index 9439435fe23a4c4352fde87d899ba8aedc6ad233..ddfecd2a02d54f4b6a54a32ba65cc0a98769b304 100644 --- a/src/periph/fpga.cpp +++ b/src/periph/fpga.cpp @@ -2380,16 +2380,20 @@ bool Periph_fpga::read_subband_weights(TermOutput& termout, int format) { bool Periph_fpga::read_signal_input_data_buffer(TermOutput& termout, int format) { bool retval = true; - uint32_t *_ptr = (uint32_t *)termout.val; + uint32_t data[C_V_si_db]; + int16_t *_ptr = (int16_t *)termout.val; string regname; - uint32_t span; for (uint i=0; i<C_S_pn; i++) { regname = "mm/0/RAM_DIAG_DATA_BUFFER_BSN/" + to_string(i) + "/data"; - span = mmap->getSpan((regname)); - retval = Read(regname, _ptr); - _ptr += span; + retval &= Read(regname, data); + for (uint j=0; j<C_V_si_db; j++) { + if (retval) { + *_ptr = (int16_t)data[j]; + } + _ptr++; + } } termout.nof_vals = C_S_pn * C_V_si_db; termout.datatype = format;