summaryrefslogtreecommitdiff
path: root/n/asserv/src/test_dsp.c
diff options
context:
space:
mode:
authorschodet2005-01-23 15:37:11 +0000
committerschodet2005-01-23 15:37:11 +0000
commit3d7610f067689fe356418d4d68011094189bd623 (patch)
treeaf2206b7951077a8960d216d016befd34afef2a1 /n/asserv/src/test_dsp.c
parent6085767ff373cb6ded89a46c8d86855b923cb7a1 (diff)
Pssasage à la nouvelle version de proto.
Diffstat (limited to 'n/asserv/src/test_dsp.c')
-rw-r--r--n/asserv/src/test_dsp.c107
1 files changed, 33 insertions, 74 deletions
diff --git a/n/asserv/src/test_dsp.c b/n/asserv/src/test_dsp.c
index 27ddc9a..870980d 100644
--- a/n/asserv/src/test_dsp.c
+++ b/n/asserv/src/test_dsp.c
@@ -33,7 +33,7 @@
/* -AutoDec */
void
-proto_callback (uint8_t c, uint8_t argc, proto_arg_t argv[])
+proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
{
int16_t a;
uint16_t b;
@@ -43,21 +43,21 @@ proto_callback (uint8_t c, uint8_t argc, proto_arg_t argv[])
int32_t al, bl, rl;
uint32_t wl[] = { 0xa66a6aa6, 0xffffffff };
static int32_t sa, sb;
- switch (c | argc << 8)
+ switch (cmd | size << 8)
{
case 'a' | 4 << 8:
- sa = argv[0];
- sa = sa << 8 | argv[1];
- sa = sa << 8 | argv[2];
- sa = sa << 8 | argv[3];
- proto_send ('a', argc, argv);
+ sa = args[0];
+ sa = sa << 8 | args[1];
+ sa = sa << 8 | args[2];
+ sa = sa << 8 | args[3];
+ proto_send ('a', size, args);
break;
case 'b' | 4 << 8:
- sb = argv[0];
- sb = sb << 8 | argv[1];
- sb = sb << 8 | argv[2];
- sb = sb << 8 | argv[3];
- proto_send ('b', argc, argv);
+ sb = args[0];
+ sb = sb << 8 | args[1];
+ sb = sb << 8 | args[2];
+ sb = sb << 8 | args[3];
+ proto_send ('b', size, args);
break;
case 'm' | 0 << 8:
for (i = 16; i > 0; i--)
@@ -66,33 +66,23 @@ proto_callback (uint8_t c, uint8_t argc, proto_arg_t argv[])
for (j = 16; j >= 0; j--)
{
b = w >> j;
- proto_send4 ('m',
- (a >> 8) & 0xff, a & 0xff,
- (b >> 8) & 0xff, b & 0xff);
+ proto_send2w ('m', a, b);
r = dsp_mul_i16f88 (a, b);
- proto_send2 ('r',
- (r >> 8) & 0xff, r & 0xff);
+ proto_send1w ('r', r);
r = dsp_mul_i16f88 (-a, b);
- proto_send2 ('R',
- (r >> 8) & 0xff, r & 0xff);
+ proto_send1w ('R', r);
}
}
break;
case 'M' | 1 << 8:
rl = dsp_mul_f824 (sa, sb);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
break;
case 'c' | 1 << 8:
rl = dsp_cos (sa);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1w ('r', rl);
rl = dsp_sin (sa);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1w ('r', rl);
break;
case 'M' | 0 << 8:
for (k = 0; k < 2; k++)
@@ -103,28 +93,16 @@ proto_callback (uint8_t c, uint8_t argc, proto_arg_t argv[])
for (j = 32; j >= 0; j--)
{
bl = wl[k] >> j;
- proto_send4 ('A',
- (al >> 24) & 0xff, (al >> 16) & 0xff,
- (al >> 8) & 0xff, al & 0xff);
- proto_send4 ('B',
- (bl >> 24) & 0xff, (bl >> 16) & 0xff,
- (bl >> 8) & 0xff, bl & 0xff);
+ proto_send1w ('A', al);
+ proto_send1w ('B', bl);
rl = dsp_mul_f824 (al, bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1w ('r', rl);
rl = dsp_mul_f824 (-al, bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1w ('r', rl);
rl = dsp_mul_f824 (al, -bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1w ('r', rl);
rl = dsp_mul_f824 (-al, -bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1w ('r', rl);
}
}
}
@@ -138,28 +116,16 @@ proto_callback (uint8_t c, uint8_t argc, proto_arg_t argv[])
for (j = 32; j >= 0; j--)
{
bl = wl[k] >> j;
- proto_send4 ('d',
- (al >> 24) & 0xff, (al >> 16) & 0xff,
- (al >> 8) & 0xff, al & 0xff);
- proto_send4 ('v',
- (bl >> 24) & 0xff, (bl >> 16) & 0xff,
- (bl >> 8) & 0xff, bl & 0xff);
+ proto_send1d ('d', al);
+ proto_send1d ('v', bl);
rl = dsp_div_f824 (al, bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
rl = dsp_div_f824 (-al, bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
rl = dsp_div_f824 (al, -bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
rl = dsp_div_f824 (-al, -bl);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
}
}
}
@@ -167,17 +133,11 @@ proto_callback (uint8_t c, uint8_t argc, proto_arg_t argv[])
case 'c' | 0 << 8:
for (al = 0; al < (1L << 24) + (1L << 21); al += 32 << 8)
{
- proto_send4 ('c',
- (al >> 24) & 0xff, (al >> 16) & 0xff,
- (al >> 8) & 0xff, al & 0xff);
+ proto_send1d ('c', al);
rl = dsp_cos (al);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
rl = dsp_sin (al);
- proto_send4 ('r',
- (rl >> 24) & 0xff, (rl >> 16) & 0xff,
- (rl >> 8) & 0xff, rl & 0xff);
+ proto_send1d ('r', rl);
}
break;
case 'z' | 0 << 8:
@@ -192,7 +152,6 @@ int
main (void)
{
rs232_init ();
- proto_init (proto_callback, rs232_putc);
rs232_putc ('!');
rs232_putc ('z');
rs232_putc ('d');