Hallo Leute. Hab einen Frequenzzähler programmiert aber folgendes Problem.... Beim Einschalten (schalter ist oben) zeigt es die richtige Herzzahl(MODUS0) an (vorher rechnerisch ermitelt).. bei betätiges des schalters wird eine gerindere Herzzahl erwartet (rechnerrisch ermittelt) es zeigt diese Zahl an, ABER es wächselt sich ständig mit einer andere zahl (die gleich bleibt) ab (eigentlich MODUS1, da freq zwischen 10 und 100)... das gleiche, wenn eine freq kleiner 10 kommt.... beim wieder hochschalten der schalters kommt wieder die 250 Hz (richtige Herzzahl in MODUS0).. Ich hoffe ich habe mich deutlich ausgedrückt... mfg
Gast
#2244589
Hi Hans,
Du Leigeplagter vom Dienst vom heute (jeder von uns ist mal dran, sich
die Zähne auszubeißen...)
Aus Deinem Programm:
void main(void)
{
i=0;
...
while(1);
}
Dies "while(1);" ist eine Endlosschleife, vermutlich, bis ein Watchdog
anschlägt und das Programm erneut startet.
Auch dies kommt mir verdächtig vor:
data unsigned int ausgabeFreq=0;
void rechnung()
{
... {
ausgabeFreq = 1000000/(256*TH0+TL0+i*65536);
}
else
{
ausgabeFreq = 1000000/(256*TH0+TL0+i*65536);
}
}
Bei meinen AVR's ist int 16 Bit breit, schmäler als
"1000000".
Du findest hier im Forum Beiträge von Kollegen, die sich mit long long
(also 64 Bit) herum geschlagen haben.
Wenn ich 1 GHz auf 1 Hz auflösen will, (ganz egal, dass mein Messsender
das gar nicht kann), käme ich auf 30 Bit.
Ciao
Wolfgang Horn
Ein Fehler ist schonmal, daß Du im Forum Codesammlung postest. Lesen müßte man können: "Forum: Codesammlung Wenn ihr eigene Programme oder Anleitungen geschrieben habt könnt ihr sie hier posten. Fragen werden gelöscht!" Peter
verschoben
Hallo, ja das ist mir bereits selber aufgefallen. Wenn ich jedoch es zu einem double mache steht die Fehlermeldung: to many types. Ich habe den code etwas abgeändert:
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 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | |
148 | |
149 | |
150 | |
151 | |
152 | |
153 | |
154 | |
155 | |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | |
162 | |
163 | |
164 | |
165 | |
166 | |
167 | |
168 | |
169 | |
170 | |
171 | |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
Ich war ausch so schlau und habe meine Taktgeberdatei geändert und eine größere Schleife eingebaut, sodass ich eine beringere frequenz erhalte. Was war? ... Ich habe trz. nur die 250 Hz angezeigt bekommen. Nun weiß ich nicht wieso das so ist. Nun bin ich hingegangen und habe einen neues Code geschrieben, der etwas einfacher gestaltet ist:
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 | |
... Nun erhalte ich die verschiedene Frequenzen: .. Bei und wenn ich die die schleiße doppel so groß mache, so erhalte ich auch eine halb so große frequenz.... ich werde es wahrscheinlich so lassen. aber wenn jmd. den fehler von mir erkennt, so bitte melde sich der dieser.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.