1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-11-24 02:26:15 +02:00
Commit Graph

318 Commits

Author SHA1 Message Date
Werner Almesberger
aa1106e120 ubb-la/gui.c: Shift+Left/Right jumps "intelligently" to next change on any channel 2013-02-01 12:29:24 -03:00
Werner Almesberger
47e5859c5b ubb-la/gui.c: move sample retrieval to new function get_sample
Better than open-coding this non-trivial formula over and over again.
2013-02-01 12:06:32 -03:00
Werner Almesberger
9c3caf282f ubb-la/gui.c (gui_init): disable the cursor on the Ben 2013-02-01 11:48:46 -03:00
Werner Almesberger
0058175361 ubb-la/README: briefly describe GUI use 2013-02-01 03:45:10 -03:00
Werner Almesberger
60b375135f ubb-la/gui.c (si_text): used fixed %7.3f format if we have 7 characters
The variable number of digits was more confusing than useful. A drawback
is we may no longer see single-sample time changes when near the end of
the buffer.
2013-02-01 00:42:29 -03:00
Werner Almesberger
9cc032816e ubb-la/gui.c (pos_step): step one sample at maximum zoom
This permits precise interval/frequency calculation with the user-defined
reference.
2013-02-01 00:38:19 -03:00
Werner Almesberger
b99c81409f ubb-la/gui.c: add user-defined zero reference (set/unset with space) 2013-02-01 00:34:02 -03:00
Werner Almesberger
5b050b4b36 ubb-la/gui.c (gui): move position display to show_position; add position in samples 2013-01-31 23:24:24 -03:00
Werner Almesberger
f9b3c36c6b ubb-la/gui.c (gui): the upper bound for "pos" is nibbles-skip-1, not "nibbles" 2013-01-31 14:48:26 -03:00
Werner Almesberger
709506e6d6 ubb-la/gui.c (show_map): fix calculation of middle point
Also here, we need to take into account that "pos" is zero-based.
2013-01-31 14:48:26 -03:00
Werner Almesberger
137ed18dc2 ubb-la/gui.c (show_buffer): fix calculation of the position offset (dp)
"pos" counts from zero so the middle point is (nibbles-skip)/2 while
the code assumed "pos" was an index into the actual buffer and the
middle point would therefore have been (nibbles+skip)/2
2013-01-31 14:43:33 -03:00
Werner Almesberger
8b69d26fa9 ubb-la/gui.c: make debug output clearer and more detailed 2013-01-31 10:51:44 -03:00
Werner Almesberger
af3c18ab19 ubb-la/try.c (main): use same buffer size and offset as the Ben 2013-01-31 10:02:31 -03:00
Werner Almesberger
f26fd3564a ubb-la/gui.c (show_map): keep view rectangle size constant
Before, we had rounding effects that could make the rectangle width vary by
one pixel, depending on position.
2013-01-31 04:03:31 -03:00
Werner Almesberger
db133f2cb6 ubb-la/gui.c: display time of center (from start of buffer) 2013-01-31 03:52:24 -03:00
Werner Almesberger
b0a576dd64 ubb-la/gui.c: mark the center of the view area 2013-01-31 03:25:21 -03:00
Werner Almesberger
a83d8bf323 ubb-la/gui.c: add small gap (UNIT_GAP) between numbers and units 2013-01-31 03:15:33 -03:00
Werner Almesberger
ba033cc27e ubb-la/gui.c: add section comments for color and layout definitions 2013-01-31 02:59:37 -03:00
Werner Almesberger
159a128d28 ubb-la.c/gui.c: show units in light blue to better separate them from numbers 2013-01-31 02:57:27 -03:00
Werner Almesberger
06c5f6b0fa ubb-la/gui.c (textf): use vsnprintf+valloca instead of vasprintf
This way, we don't malloc/free all the time, which could lead to more
memory fragmentation than alloca at roughly the same stack location.
2013-01-31 02:50:01 -03:00
Werner Almesberger
52c3dcc16a ubb-la/gui.c (textf): vasprintf ain't alloca, so we need to free() 2013-01-31 01:45:42 -03:00
Werner Almesberger
cdcfb6c181 ubb-la/gui.c: show division size (in samples and seconds) 2013-01-31 01:21:56 -03:00
Werner Almesberger
8d81b584a0 ubb-la/gui.c (XWIDTH): move view width into macro instead of open-coding it 2013-01-31 01:11:18 -03:00
Werner Almesberger
acd9fd6673 ubb-la/gui.c: show horizontal divisions 2013-01-31 01:09:42 -03:00
Werner Almesberger
5bb086e0e8 ubb-la/: display sample rate and sample interval in the GUI 2013-01-31 01:08:39 -03:00
Werner Almesberger
e1be0f242b ubb-la/gui.c: display a small map of buffer and view 2013-01-31 00:07:32 -03:00
Werner Almesberger
f99b62636f ubb-la/gui.c: label channels 2013-01-30 23:19:09 -03:00
Werner Almesberger
444e0811bf ubb-la/ubb-la.c: new option -g to use the GUI to display results
For now, only in single-buffer mode.
2013-01-30 22:07:55 -03:00
Werner Almesberger
0925b0f060 ubb-la/gui.c: add section titles and reorder some of the functions 2013-01-30 22:07:31 -03:00
Werner Almesberger
533e9643ac ubb-la/gui.c (DEBUG): make debugging fprintfs optional via DEBUG macro 2013-01-30 21:25:47 -03:00
Werner Almesberger
2d49a73aad ubb-la/try.c: run the GUI with fake data 2013-01-30 21:20:08 -03:00
Werner Almesberger
65a8578bd2 ubb-la/Makefile: add SDL (may break "static") 2013-01-30 21:19:09 -03:00
Werner Almesberger
435144223d ubb-la/gui.c (gui): make panning zoom-dependent (2 samples at maximum zoom) 2013-01-30 21:08:25 -03:00
Werner Almesberger
4fb2a8cbee ubb-la/gui.c (gui_init): enable keyboard repeat 2013-01-30 20:55:58 -03:00
Werner Almesberger
c702fc0e90 ubb-la/gui.c: add horizontal panning (WIP) 2013-01-30 20:51:22 -03:00
Werner Almesberger
12a1808e09 ubb-la/gui.c (gui): fix the event loop to properly ignore unrecognized events 2013-01-30 20:37:42 -03:00
Werner Almesberger
1b0a2cff51 ubb-la/gui.c: use powers of two for zoom and integer arithmetic (WIP)
This looks better and avoids the risk of math issues.
2013-01-30 20:37:10 -03:00
Werner Almesberger
94e099eebc ubb-la/gui.c: experimental GUI code (WIP) 2013-01-30 14:38:54 -03:00
Werner Almesberger
b7688f3abe ubb-la/ubb-la.c: add more section titles 2013-01-30 01:52:38 -03:00
Werner Almesberger
760e8a893a ubb-la/ubb-la.c (xfers): revert to "safe" end-of-command synchronization
This seems to be the best compromise between stability and performance.
2013-01-30 01:51:12 -03:00
Werner Almesberger
3b007ebaf1 ubb-la/ubb-la. (xfers): re-optimize the start bit
Combined with the 84 MHz speedup, this yields:

1       3       gap+0   2       0       1       3
------- ------- ------- ------- ------- ------- -------
        118     36              1       138
        89      35      1                       22
        59      36      1                       51
        30      36      1                       80

So in this case we gain only about 3 samples or 10% by making this risky
optimization. (The gain would be higher at higher sample rates, lower at
lower rates.)
2013-01-29 00:15:24 -03:00
Werner Almesberger
bf62b209e5 ubb-la/ubb-la.c: raise MMC bus clock to 84 MHz during overhead
We also de-optimize the start bit (DAT0=0) phase for now. In the
12 MHz scenario, this produces the following results:

1       3       gap+0   2       0       1       3
------- ------- ------- ------- ------- ------- -------
8               38              26      100     146
        102     38      26                      6
        52      39      26                      55
        147     41      26                      105
97              39              26      10      146

Note that the gap now includes the start bit phase, since the clock
change may complicate the calculation of how many 12 MHz samples
it corresponds to.
2013-01-28 23:24:29 -03:00
Werner Almesberger
128590bee0 ubb-patgen/ubb-patgen.c: new option -I inter_s to select "unsafe" frequencies 2013-01-28 21:20:25 -03:00
Werner Almesberger
04b235cedf ubb-patgen/ubb-patgen.c: new option -F freq_Hz to select "unsafe" frequencies 2013-01-28 21:14:53 -03:00
Werner Almesberger
f862a82a2d ubb-la/ubb-la.c: new option -F freq_MHz to select "unsafe" frequencies 2013-01-28 21:06:00 -03:00
Werner Almesberger
85bda4c41d ubb-la/ubb-la.c (frequency): adapt use of mmcclk for API change 2013-01-28 21:05:01 -03:00
Werner Almesberger
66a487b634 ubb-patgen/ubb-patgen.c (frequencies): adapt use of mmcclk for API change 2013-01-28 21:04:26 -03:00
Werner Almesberger
591bb6427b libubb/mmcclk.c (mmcclk_first): add flags to relax clock selection constraints 2013-01-28 20:49:17 -03:00
Werner Almesberger
14b7a9cdee ubb-la/ubb-la.c (xfers): instead of waiting for event, use hand-optimized delay loop
The gap is just as long as when waiting for an event but the "start bit"
on DAT0 has vanished completely:

1       3       gap     2       0       1       3
------- ------- ------- ------- ------- ------- -------
53              77                      16      146
66              79                      1       146
81              79                              132
96              79                              117
2013-01-28 16:43:29 -03:00
Werner Almesberger
18a822b845 ubb-la/ubb-la.c (xfers): wait for END_CMD_RES instead of DATA_FIFO_EMPTY
This seems to make no difference for the gap but the "start bit" (DAT0
pulled low) seem to get 1-2 samples shorter:

1       3       gap     2       0       1       3
------- ------- ------- ------- ------- ------- -------
146             77      9                       60
147     13      79      9                       45
145     28      79      10                      29
146     43      79      9                       15
2013-01-28 16:43:23 -03:00