Hallo,
bin neu hier und möchte eine PWM
mit Hilfe des TIM1 Kanal2 entwickeln.
Ich besitze das IAR STM32-SK Board mit dem J-Link Debugger.
Laut mitgeliefertem Schaltplan sitzt der TIM_CH2 auf Pin A9.
Meine erste Frage. Wie gebe ich den Pin korrekt an?
1
voidmain(void)
2
{
3
GPIO_InitTypeDefGPIO_InitStructure;
4
TIM_TimeBaseInitTypeDefTIM1_TimeBaseInitStruct;
5
TIM_OCInitTypeDefTIM_OCInitStructure;
6
7
SystemInit();
8
9
/* Set the Vector Table base location at 0x20000000 */
Das war meine Initialisierun der Main Methode.
Danach stelle ich die Timer ein.
Ich möchte damit einen Modellbau Servo ansteuern.
Das heisst: 0.5 bis 2.5ms variable Pulsweite
und eine Periodendauer von 20ms.
Nun funktioniert aber die PWM aber nicht.
Ich bekomme kein Signal.
Was mache ich falsch.
Wie kann ich während der Laufzeit die Pulsweite ändern?
Wäre echt lieb wenn mir von euch jemand helfen könnte.
lg Kerstin.
TIM_SetCompare1(TIM4,1500);// Pulsweite in Millisekunden
Bei der GPIO-Konfiguration muss man natürlich den richtigen Pin
erwischen, bei meinem STM32F4407VG ist das PD12. Herausfinden kann man
den richtigen Pin aus der "Alternate function mapping" aus dem
Datenblatt.
Nun noch ne Frage zur Änderung der Pulsweite während der Laufzeit.
In der While Schleife habe ich nun den Befehl:
TIM_SetCompare1 (TIM1, 155);
ausgeführt, der meine Pulsweite von 140ms auf den Wert 155 ändern
sollte.
dies funktioniert leider nicht.
Jemand eine Idee?
lg
Kein Problem habs schon kapiert.
Hab nun alles so eingebaut.
Wenn ich das Signal des RC-Empfängers mit angeschlossenem Servo in
MITTELSTELLUNG messe ist die Periodendauer 22ms lang und hat eine
Pulsweite von 1,48ms
Wenn ich dies mit dem Microcontroller nachahme
habe ich zwar auf dem DSO das gleiche Bild, jedoch fährt der
Servo immer an den Anschlag....
Wieso?
>Wenn ich dies mit dem Microcontroller nachahme>habe ich zwar auf dem DSO das gleiche Bild, jedoch fährt der>Servo immer an den Anschlag....
Vieleicht mag der Servo ja keine 3.3V sondern möchte
5V haben.