stm32f407 TIM3-Problem

Gast #5112775
Lesenswert?
• ▲
▼
ich habe diesen code:
1
//init:
2
  __HAL_RCC_TIM3_CLK_ENABLE();
3
//  TIM3->CR1|=(3<<8);//ckd
4
  TIM3->ARR=0xffff;
5

6
  TIM3->PSC =600 ;//
7
        //600 => 13847 ticks/sec
8
        //831 => 39147 ticks/sec
9

10

11
  TIM3->CR1|=1 ;//cen | ckd
12
  TIM3->CNT=0;
13

14
....
15

16
//jede sec
17
  lcd_goto(3,1);
18
  lcd_int(TIM3->CNT);
19
  lcd_write(":");
20
  TIM3->CNT=0;

Es sollein einfacher Timer zur Zeitmessung mit 10us Genauigkeit werden.

Irgendwie klappt das mit ckd und psc nicht. Was ist falsch?
Gast #5112828
Lesenswert?
• ▲
▼
Moin,

grundschüler schrieb:
> Irgendwie klappt das mit ckd und psc nicht. Was ist falsch?

Was klappt denn nicht. Ich hatte mir mal ein 10us Timestamp generiert:
    __TIM5_CLK_ENABLE();
    /* TIM5 counts up in steps of 10us to provide a 32bit time stamp 
value */
    TIM5->PSC   = 839;
    TIM5->CR1   = TIM_CR1_CEN;
    TIM5->EGR   = TIM_EGR_UG;
Das reichte. Das UG schien notwendig zu sein:
Bits 15:0 PSC[15:0]: Prescaler value
The counter clock frequency CK_CNT is equal to fCK_PSC / (PSC[15:0] + 
1).
PSC contains the value to be loaded in the active prescaler register at 
each update event.

Liegt es vielleicht daran?
Gast #5112858
Lesenswert?
• ▲
▼
Moin,

grundschüler schrieb:
> //jede sec
>   lcd_goto(3,1);
>   lcd_int(TIM3->CNT);
>   lcd_write(":");
>   TIM3->CNT=0;

mir fiel grad ein, TIM 3 ist ein 16bit counter im F407!
Bei 10us steps laeuft er nach 0,6s von selbst ueber.

Bei mir lief das Board mit 168MHz -> PSC 839 fuer 10us steps.
APB1 Divider 4 (Timer X2) -> 84MHz auf TIM5

Welchen Takt hast du?
Gast #5112869
Lesenswert?
• ▲
▼
168 Mhz - am Überlauf liegt es nicht. Das habe ich getestet. Meine 
Erwartungshaltung wäre halt dopelter psc ergibt halben Takt. Ich werde 
versuchshalber aber mal deinen tim5-code probieren. danke

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.