File: arch_potentiometer.c

package info (click to toggle)
faumachine 20180503-4
  • links: PTS
  • area: main
  • in suites: buster
  • size: 61,272 kB
  • sloc: ansic: 272,290; makefile: 6,199; asm: 4,251; sh: 3,022; perl: 886; xml: 563; pascal: 311; lex: 214; vhdl: 204
file content (67 lines) | stat: -rw-r--r-- 1,313 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
 * Copyright (C) 2017 FAUmachine Team <info@faumachine.org>.
 * This program is free software. You can redistribute it and/or modify it
 * under the terms of the GNU General Public License, either version 2 of
 * the License, or (at your option) any later version. See COPYING.
 */

#ifdef INCLUDE
#endif /* INCLUDE */
#ifdef STATE

struct {
	int state_left;
	int state_right;
	int state_adj;
} NAME;

#endif /* STATE */
#ifdef BEHAVIOR

static void
NAME_(update)(struct cpssp *cpssp)
{
	int mV;
	int mA;

	mV = (int) cpssp->NAME.state_left
		+ ((int) cpssp->NAME.state_right - (int) cpssp->NAME.state_left) * (int) cpssp->NAME.state_adj / 100;
	mA = -1;
	NAME_(mid_out_set)(cpssp, SIG_COMB(mV, mA));
}

static void
NAME_(left_in_set)(struct cpssp *cpssp, unsigned int val)
{
	cpssp->NAME.state_left = SIG_mV(val);
	NAME_(update)(cpssp);
}

static void
NAME_(right_in_set)(struct cpssp *cpssp, unsigned int val)
{
	cpssp->NAME.state_right = SIG_mV(val);
	NAME_(update)(cpssp);
}

static void
NAME_(adj_set)(struct cpssp *cpssp, int val)
{
	cpssp->NAME.state_adj = val;
	NAME_(update)(cpssp);
}

static void
NAME_(create)(struct cpssp *cpssp)
{
	cpssp->NAME.state_left = 0;
	cpssp->NAME.state_right = 0;
	cpssp->NAME.state_adj = 0;
}

static void
NAME_(destroy)(struct cpssp *cpssp)
{
}

#endif /* BEHAVIOUR */