aboutsummaryrefslogtreecommitdiff
path: root/semestr-3/anm/cordic/CORDICtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'semestr-3/anm/cordic/CORDICtable.c')
-rw-r--r--semestr-3/anm/cordic/CORDICtable.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/semestr-3/anm/cordic/CORDICtable.c b/semestr-3/anm/cordic/CORDICtable.c
new file mode 100644
index 0000000..f222d08
--- /dev/null
+++ b/semestr-3/anm/cordic/CORDICtable.c
@@ -0,0 +1,21 @@
+//CORDIC, 21 bits, 18 iterations
+// 1.0 = 262144.000000 multiplication factor
+// A = 1.743279 convergence angle (limit is 1.7432866 = 99.9deg)
+// F = 1.646760 gain (limit is 1.64676025812107)
+// 1/F = 0.607253 inverse gain (limit is 0.607252935008881)
+// pi = 3.141593 (3.1415926536897932384626)
+
+#define CORDIC_A 1.743279 // CORDIC convergence angle A
+#define CORDIC_F 0x00069648 // CORDIC gain F
+#define CORDIC_1F 0x00026DD4 // CORDIC inverse gain 1/F
+#define CORDIC_HALFPI 0x0006487F
+#define CORDIC_PI 0x000C90FE
+#define CORDIC_TWOPI 0x001921FB
+#define CORDIC_MUL 262144.000000 // CORDIC multiplication factor M = 2^18
+#define CORDIC_MAXITER 18
+
+int CORDIC_ZTBL[] = {
+ 0x0003243F, 0x0001DAC6, 0x0000FADC, 0x00007F57, 0x00003FEB, 0x00001FFD, 0x00001000, 0x00000800,
+ 0x00000400, 0x00000200, 0x00000100, 0x00000080, 0x00000040, 0x00000020, 0x00000010, 0x00000008,
+ 0x00000004, 0x00000002 };
+