Commit Graph

605 Commits

Author SHA1 Message Date
Matt Huszagh
bae295140d update lock-in for integer math and PLL 2021-01-12 07:36:56 -08:00
Matt Huszagh
028f4a1bb2 fix small typos 2021-01-12 07:36:56 -08:00
Ryan Summers
ad3681f30b
Merge pull request #223 from quartiq/rs/issue-219/adc-setup
Conforming to external ADC conversion timing
2021-01-12 07:05:17 -08:00
Ryan Summers
db3a42a7b9
Update src/adc.rs
Co-authored-by: Robert Jördens <rj@quartiq.de>
2021-01-12 06:54:16 -08:00
6b170c25ed Fixing timing synchronization 2021-01-12 13:29:15 +01:00
91975993cf Fixing docs 2021-01-11 12:38:20 +01:00
d5c21efc9d Adding extra DMA transfer to clear TXTF in ADC SPI transfers 2021-01-11 12:31:15 +01:00
Ryan Summers
1307ddb0ba
Merge pull request #196 from vertigo-designs/feature/pounder-timestamping
Feature/pounder timestamping
2021-01-11 01:50:09 -08:00
f785ec2f51 hitl: dispatch stabilizer event 2021-01-08 19:13:48 +01:00
09a7ab2773
ci: correctly use stable toolchain 2021-01-08 19:09:42 +01:00
96dc13da35 hitl: rename, add badge 2021-01-08 19:05:51 +01:00
5ecb28fb05
Merge pull request #220 from quartiq/jordens-hitl
hardware in the loop testing
2021-01-08 17:30:12 +01:00
72d69960ca
Create hitl.yml 2021-01-08 17:28:07 +01:00
f6062c666e Fixing pounder v1.1 build 2021-01-06 15:13:28 +01:00
18068082ac Fixing CI 2021-01-06 15:04:06 +01:00
e9cef7bbac Fixing after review 2021-01-06 14:59:01 +01:00
29a89637f8 Merge branch 'master' into feature/pounder-timestamping 2021-01-06 14:45:56 +01:00
Ryan Summers
a2fb4630b8
Merge pull request #195 from vertigo-designs/feature/digital-input-stamp
Feature/digital input stamp
2021-01-06 05:45:04 -08:00
8a98428ed4 Adding documentation 2021-01-06 14:42:36 +01:00
3899848815 Merge branch 'feature/digital-input-stamp' into feature/pounder-timestamping 2021-01-06 13:37:33 +01:00
96485c4229 Reverting unintended diff 2021-01-06 13:36:13 +01:00
37595405c3 Merge branch 'feature/digital-input-stamp' into feature/pounder-timestamping 2021-01-06 13:34:55 +01:00
da34756df7 Adding support for pounder v1.1 2021-01-06 13:29:19 +01:00
3332a8e927 Updating branch dependencies 2021-01-06 12:59:24 +01:00
9e7bfd4371 Adding updates after review 2021-01-06 12:24:09 +01:00
e831c7b11f
Merge pull request #213 from matthuszagh/pll
pll update input is named "x" not "input"
2021-01-05 09:38:02 +01:00
Matt Huszagh
a3cd17fd70 pin clippy to stable 2021-01-04 16:37:46 -08:00
Matt Huszagh
13543ce048 pll update input is named "x" not "input" 2021-01-04 11:14:27 -08:00
2b6e6f59a4 Adding comment about sample rate 2021-01-04 18:09:16 +01:00
7ecd08d86b More updates after PR review 2021-01-04 18:04:01 +01:00
67b6990fc0 Addressing PR review 2021-01-04 17:12:24 +01:00
bors[bot]
1bf71f335b
Merge #210
210: iir_int: add optimized integer iir implementation r=jordens a=jordens



Co-authored-by: Robert Jördens <rj@quartiq.de>
2020-12-22 15:51:39 +00:00
cc42c0c477 iir_int: add optimized integer iir implementation 2020-12-22 16:49:12 +01:00
bors[bot]
40e12e8a7d
Merge #209
209: Rj/refine atan2 r=jordens a=jordens



Co-authored-by: Robert Jördens <rj@quartiq.de>
2020-12-20 20:10:44 +00:00
8d9af70c19 trig/atan2: refine
* use dynamic scaling of the inputs to get accurate ratios (effectively
  floating point) to maintain accuracy for small arguments
* this also allows shifting later and keep more bits
* use u32 ratio to keep one more bit
* merge the corner case unittests into the big test value list
* print rms, absolute and axis-relative angle
* simplify the correction expression to get rid of one multiplication
* use 5 bit for the correction constant and 15 bits for r
* least squares optimal correction constant, this lowers the max error
  below 5e-5
2020-12-20 21:07:23 +01:00
12d5945d81 dsp/testing: simplify 2020-12-20 20:23:32 +01:00
bors[bot]
2f122d12fa
Merge #207
207: atan r=jordens a=matthuszagh

Adds 2-argument arctangent function. Parameters and result are `i32` integers for fast computation. Only the 16 MSBs of the inputs are used (16 LSBs are discarded). The x and y inputs can range from -1 to 1, which corresponds to `i32::MIN` and `i32::MAX`, respectively. The output ranges from -pi to pi, which corresponds to `i32::MIN` and `i32::MAX`, respectively.

- [godbolt](https://rust.godbolt.org/z/nahKrT)

# Related
- #206

Co-authored-by: Matt Huszagh <huszaghmatt@gmail.com>
2020-12-17 22:28:55 +00:00
Matt Huszagh
7e794373f4 atan2: fix output range description 2020-12-17 14:21:39 -08:00
Matt Huszagh
3125365a15 add atan2 host benchmark 2020-12-17 14:01:57 -08:00
Matt Huszagh
17cf71f22b atan2: replace min, max with x, y 2020-12-17 11:39:32 -08:00
Matt Huszagh
9c5e68ceea atan2: test min and max angle inputs 2020-12-17 11:34:39 -08:00
Matt Huszagh
6ffc42021e move atan2 test before cossin test to mimic function order 2020-12-17 10:09:12 -08:00
Matt Huszagh
09a744f59c dsp: move iir generic math functions to top-level module scope 2020-12-17 10:04:48 -08:00
Matt Huszagh
56641d5838 atan2: specify why we cannot use more than 15 bits for the atan argument 2020-12-17 10:02:35 -08:00
Matt Huszagh
1f28949bc5 atan2: store sign bits and greater of |x| and |y| 2020-12-17 09:47:39 -08:00
Matt Huszagh
cb38c3e3bd atan2: clarify sharing bits between atan argument and constant factors 2020-12-17 09:31:38 -08:00
Matt Huszagh
5717991ada atan2: result range is from i32::MIN+1 to i32::MAX 2020-12-17 09:31:18 -08:00
Matt Huszagh
d7111a3aa8 dsp/trig: let compiler infer type parameter in atan2 abs call 2020-12-17 08:04:53 -08:00
Matt Huszagh
d9d500743f simplify atan initial angle expression 2020-12-17 08:02:54 -08:00
Matt Huszagh
2ddaab8fae dsp: fix bench import path 2020-12-16 16:57:18 -08:00