-
Notifications
You must be signed in to change notification settings - Fork 322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix screen artifacts, change start/stop or center/span mode set, remove Mutex use #126
Conversation
…arted but CH not ready) Little code optimization Add commented 600kHz I2C bus timings (work, give x1.5 speed, but need change DSP ready timings not by wait_count, need use chVTGetSystemTimeX() its better)
Use int64_t acc for values Use double on calculation Not cache freq on si5351_set_frequency_with_offset (to fast change in rare cases on cw mode, and process wrong DSP block) as i write before need change DSP delay tactic
In dsp_process data lost on divide, it equalent use sincos_tbl/16
On small signal values possible data lost |
Need more think about DSP (i cant correct measure how good result give this changes), revert it But as minimum lost data (float have 23 bit mantissa + sign, but int32 have 31 bit + sign)
and on accumulate drop lost 4 bit on every step
Added:
|
In mark_cells_from_index(void) mark all rectangle (in most cases this not decrease render speed, and more fast in calculation, and no errors)
Fix screen artifacts Rewrite mark_cells_from_index PS bigger screen buffer give not big render speedup (if need more RAM possible decrease CELLWIDTH to 32, in most cases speed decreased by 0-10%) |
…up to MAX_MARKMAP_X = 32)
#define FREQ_MODE_START_STOP 0x0 #define FREQ_MODE_CENTER_SPAN 0x1 Now sweep mode not defined from frequency0 > frequency1 or frequency0 < frequency1 frequency0 always < frequency1 All freq must get by use get_sweep_frequency(mode) Revert Select CH0 reflect channel before set freq, add additional delay on 0 sweep point
(For faster screen update on marker move, all old area update info invalidate after use draw_all_cells(TRUE) on page switch) Force redraw all cells after end marker move
Improve frequency stability on band change (100 MHz, 150MHz, 300 MHz, 450MHz) Restore freq cache in CW mode
FIX issue #127 |
…unctions run in sweep thread It allow: - reduce shell thread stack size - more compact code - fix some hardcoded scan command code, allow write better scan version - run calibrate (not depend from pause sweep flag) Rewrite uint32_t my_atoui(const char *p), now its allow read: hex 0xaAbBcC1122 dec 12345678 bin 0b00011100 oct 0o12345678 Add some comments
Fix this issue |
…ed bu default ENABLE_COLOR_COMMAND) Usage: usage: color {id} {rgb24} - Grid color: id = -3 - Menu bg color: id = -2 - Selected menu: id = -1 - Trace 1-4: id = 0..3 Color in hex RGB format (but possible any type input, dec, hex, bin. oct)
I add issues tab in my repo Also in future i plan write better variant sweep command, in allow use unlimited point (only execution time) and allow get all data in procees (apply/not apply internal calibration/edelay) Color command, in plan use palette mode draw (it allow free some RAM, need check this variant)
PS you can write on Russian |
In plot.c prepare for 8bit/pixel mode (test, allow increase cell buffer size by use 4 or 8bit/pixel mode, but not need for now) main.c little change wait execute shell command in sweep thread
Define and move constants in nanovna.h, and use it Fix command 'marker' - display marker freq (not current freq)
…or (but less then 1mV)
…, allow more faster get measured data usage: scan {start(Hz)} {stop(Hz)} [points] [outmask] [outmask] - optional, allow output measured data, its a mask (allow dec, hex, bin, oct) 0b001 - output frequency 0b010 - output CH0 data 0b100 - output CH1 data Example: 'scan 1000000 5000000 101 0b111' - output data in format: freq ch0[0] ch0[1] ch1[0] ch1[1] 'scan 1000000 5000000 101 0b101' - output data in format: freq ch1[0] ch1[1] 'scan 1000000 5000000 101 0x7' - output data as 0b111
Fix my tupo in extended scan command (not correctly parse point count)
…in error messages)
use sweep_points exept POINTS_COUNT on marker search and so Now possible change sweep_points in process (for faster sweep)
!!!!! Don`t understand why si5351 non stable on band 2 then change from band 3 It fixed if set before sweep one frequency from band 1 (for example 50MHz) Possibly problem in tlv320aic3204_set_gain, call only si5351_set_frequency_with_offset not work Little faster call command from shell Fix interpolation if points < POINTS_COUNT
Don`t understand why si5351 non stable on band 2 then change from band 3 and back Before if set sweep from 150MHz to 600MHz possible see non correct amplitude if 150-300МHz, but if set 149MHz all ok. Add: |
Need select maximum ready time and check in on DSP ready.
For example:
tlv320aic3204_select need xxx time
set_frequency need yyy, in some times zzz
Need sellect maximum ready time and start dsp after, its allow more better optimise sweep
On 600kHz I2C bus speed set_frequency req only 440 sys tick (on 400kHz need 700), and in some cases can be faster then tlv320aic3204_select
Rewrite uint32_t my_atoui(const char *p), now its allow read:
hex 0xaAbBcC12
dec 12345678
bin 0b00011100
oct 0o12345678
Implement color command, allow change color settings in config (enabled bu default ENABLE_COLOR_COMMAND)
use sweep_points exept POINTS_COUNT on marker search and so
Now possible change sweep_points in process (for faster sweep)
Add some comments