Gast
#2840457
Hallo zusammen, ich unternehme die ersten Schritte mit der STM32F4 CPU auf dem Discovery-Board. Mein Ziel ist es ein Rechtecksignal mit variabler Frequenz zu erzeugen (damit sollen später Sensorwerte für eine Data Acquisition Unit übertragen werden). Die Initialisierung der GPIO`s und der Timer klappt soweit. Des Weiteren habe ich auch die Takterzeugung auf den externen 8MHz Quarz vom Board angepasst, sodass auch die Frequenzeinstellung des Ausgangspins sich nachvollziehen lässt. Wenn ich das Referenzbuch richtig verstande habe dann zählt der Counter bis zu dem Wert der im ARR abgelegt ist und setzt dann beim Erreichen des Endwerts das UG-Bit, geniert also ein Update. Meine Idee war es die Werte im ARR entsprechend zu ändern und somit auch andere Frequenzen zu erhalten. Wenn ich das mit festen Werten machen bekomme ich auch die entsprechenden Ergebnisse. Lass ich das wie im Code in eine Schleife laufen, so ändert sich die Frequenz des Ausgangs allerdings nicht von 25Hz nach 10Hz, sondern springt. Meine Vermutung wenn ich im Debugger schrittweise vorgehe ist, dass der Counter letztendlich ja schon läuft nach dem ich das ARR mit einem neuen Wert beschrieben habe. Leider finde ich keine Möglichkeit den Counter an dieser Stelle explizit wieder bei Null starten zu lassen. Vielleicht bin ich ja völlig auf den Holzweg was meine Vorgehenweise betrifft. Für einen hilfreichen Hinweis zur Problematik wäre ich dankbar.
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 | |