Guten Morgen,
ich arbeite mit einem STM32F411RE und möchte ein 40kHz Signal auf einen
GPIO ausgang geben. Hierfür habe ich einen Timer auf diese Frequenz
konfiguriert. Bis jetzt habe ich in der Pulsefinished callback Funktion
einen GPIO getriggert. Jetzt möchte ich aber zusätzlich ein Startsignal
nutzen um diesen 40kHz burst zu senden und nicht kontinuierlich wie bis
jetzt. Ich bin mir nicht sicher wie genau ich das umsetzen soll. Kann
ich vielleicht einfach in einer Funktion die nach dem Start Trigger
Signal aufgerufen wird, den Ausgang toggeln?
1 | void PM(void)
|
2 | {
|
3 | GPIOA->BSRR = (1<<24);;
|
4 | for(int p=0;p<=40;p++)
|
5 | {
|
6 | if(TIM2->SR & 0x01)
|
7 | GPIOA->ODR ^= (1<<8); //Toggle output GPIOA PA8
|
8 | }
|
9 | GPIOA->BSRR = (1<<24);
|
10 | }
|
Hier habe ich versucht einen Ausgang zu toggeln mit Hilfe des Update
interrupt flag des TIM2 registers. Ich dachte das triggert genau mit den
40kHz, ist aber leider nicht der Fall. Im Anhang sieht man (gelb) das
Startsignal und (blau) den GPIO. Dieser Trigger nicht mir den 40kHz und
hat zwischen drin noch lange Pausen. Jemand vielleicht einen Tipp?