STM32F4 Timer Burst bei Trigger

OP #6653350
Lesenswert?
• ▲
▼
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?
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.