Hi! Ich messe mit meinem µC (MSP430) Temperaturen. Da meine Temperaturn nur selten Sprunghaft ansteigen mache ich eine Mittelwert bildung um Messefehler zu minimiren. Dieses möchte ich in einem Rign Speicher Realiesiernen, bzw habe ich das schon gemacht. Die funktion ist auch gegeben, nur die übersichtlichkeit ist absulut nicht mehr vorhanden, deswegen würde ich gerne von euch ein Beispiel für einen übersichtihcen Ringspeicher sehen über den ich eine Mittelwertbildung mache. Die größe des Speichers soll im Code änderbar sein und zwischen 0x02<x<0xFE liegen .. wobei ein Wert um 9 Realistisch seien wird denke ich. Darüber hinaus möchte ich einen Mittelwert über die letzten 2(oder3,4) Werte Bilden und die mit dem Gesammten Mittelwert vergleichen. Fals nun eine zu Große abweichung (+/- Delta_X oder +- 5%) bestehen sollte werden die Ringspeicher daten verworfen und neu aufgenommen. LG Bergie
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 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
Anstelle des Sonderfalls INVALID_VALUE, welcher nur am Anfang zum Tragen kommt, wenn der Ringspeicher noch nicht vollständig gefüllt ist, könntest du ganz einfach auch den Speicher mit deinem ersten Messwert fluten. Dann fallen viele Sonderfälle weg und der Code wird noch einfacher.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.