dol: initial dol commit
[jump.git] / dol / examples / example6 / src / filter.c
1 #include <stdio.h>
2 #include <math.h>
3 #include "filter.h"
4
5 /**
6  * Write zero to feedback output.
7  */
8 void filter_init(DOLProcess *p)
9 {
10   p->local->zero = 0.0;
11   p->local->factor = 0.5;
12   p->local->firstiteration = 1;
13 }
14
15 /**
16  * Filter.
17  */
18 int filter_fire(DOLProcess *p)
19 {
20   if (p->local->firstiteration) {
21       DOL_write((void*)PORT_OUTB, &(p->local->zero), sizeof(float), p);
22       p->local->firstiteration = 0;
23   }
24
25   DOL_read((void*)PORT_INA, &(p->local->inA), sizeof(float), p);
26   DOL_read((void*)PORT_INB, &(p->local->inB), sizeof(float), p);
27   p->local->out = p->local->inA + p->local->factor * p->local->inB;
28   DOL_write((void*)PORT_OUTA, &(p->local->out), sizeof(float), p);
29   DOL_write((void*)PORT_OUTB, &(p->local->out), sizeof(float), p);
30
31   return 0;
32 }