AD9857 IQ DDS Digital Up Converter Experiment using Nucleo F401
Digital Signal Processing for IQ Quadradure Modulation DDS AD9857 using Nucleo F401.
see http://ttrftech.tumblr.com/post/114310226891/
Diff: main.cpp
- Revision:
- 3:e6897d74d6bf
- Parent:
- 2:57e603a26534
- Child:
- 4:dfd05c26edbe
--- a/main.cpp Sun Mar 22 13:57:58 2015 +0000 +++ b/main.cpp Mon Mar 23 15:00:50 2015 +0000 @@ -432,9 +432,9 @@ { uint32_t i = __PKHBT(decay_ave, in, 16); uint32_t q = __PKHTB(in, decay_ave, 16); - i = __SMUAD(0x0001000f, i) >> 4; - q = __SMUAD(0x0001000f, q) >> 4; - decay_ave = __PKHBT(i, q, 16); + int32_t sum_i = __SMUAD(0x0001000f, i) / 16; + int32_t sum_q = __SMUAD(0x0001000f, q) / 16; + decay_ave = __PKHBT(sum_i, sum_q, 16); } @@ -510,7 +510,7 @@ fmmod_init(&fmmod); - cic.s0 = __PKHBT(3, 3, 16); // adjust offset + cic.s0 = __PKHBT(12, 0, 16); // adjust offset //pseudo_noise_test(); //interpolate_test(); //hilbert_transform_test(); @@ -542,7 +542,11 @@ //pc.printf("%08x %08x\r\n", decay_ave, capbuf_ave); //pc.printf("%02x %02x\r\n", I2CRead(0x18, 67), I2CRead(0x18, 44)); - //pc.printf("%d %d\r\n", dma_buf[0][100], dma_buf[0][101]); + if (pc.readable()) { + pc.getc(); + uint32_t *buf = (uint32_t *)dma_buf; + pc.printf("%08x %08x %08x %08x\r\n", buf[0], buf[1], buf[2], buf[3]); + } //pc.printf("%04x %04x\r\n", (uint16_t)fir_buf[0], (uint16_t)fir_buf[1]); //pc.printf("%08x\r\n", *(uint32_t*)cap_buf[0]); }