Forum: Mikrocontroller und Digitale Elektronik STM32F107VC PWM uVision KEIL


von Ma B. (drumstick)


Lesenswert?

Hallo!

Ich arbeite mit dem STM32F107VC und verwende yVision4 von Keil. Mein 
Problem ist, ich erzeuge ein PWM Signal mit dem Timer 4. Im debug Modus 
funktionierts einwandfrei. In Echtzeit ist das Ausgangssignal dauernd 1. 
Ist die Zeit ein Problem, oder was könnte die Differenz ausmachen??

Vielen Dank und freundliche Grüsse!

M.B.

[Mod: Topic erweitert, war "uVision KEIL"]

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Pins richtig konfiguriert?

Grüße Gebhard

von Ma B. (drumstick)


Lesenswert?

Hallo!

Ja, habe die Clock und Pin Konfi. von einem Beispiel übernommen, das 
funktioniert!
1
//Clock:
2
3
RCC   ->  CFGR     =  0x001d8402;
4
RCC   ->  CR       =  0x01010082;
5
RCC   ->  APB2ENR |=  1 <<  3;
6
7
//Pins:
8
9
GPIOB ->  CRH     &=  0x00000000;
10
GPIOB ->  CRH     |=  0x333333BB;

müsste stimmen!

Danke und Gruess!

M.B.

von Ma B. (drumstick)


Lesenswert?

Und die Timer Konfig.
1
RCC   ->  APB1ENR =    0x0004;            // enable clock for TIM4
2
TIM4  ->  CR1     =   0;                 // reset command register 1
3
TIM4  ->  CR2     =   0;                // reset command register 2
4
5
TIM4  ->  PSC     =   0x1C1F;              // set prescaler
6
TIM4  ->  ARR     =   0x270F;           // set auto-reload
7
8
  TIM4  ->  CCR1    =   0x0000;                            //
9
  TIM4  ->  CCR2    =   0x0000;                            //
10
  TIM4  ->  CCR3    =   0x1388;                            //
11
  TIM4  ->  CCR4    =   0x094C;                            //
12
  TIM4  ->  CCMR1   =   0x0000;                           //
13
  TIM4  ->  CCMR2   =   0x6060;                           //
14
  TIM4  ->  CCER    =   0x1100;     // set capture/compare enable register
15
  TIM4  ->  SMCR    =   0x0000;     // set slave mode control register
16
17
  TIM4  ->  SR      =   0x0001;  
18
  TIM4  ->  CR1     =   0x0004;    // set command register 1
19
  TIM4  ->  CR2     =   0x0000;    // set command register 2
20
  TIM4  ->  DIER    =   0x0018;  // enable interrupt
21
  TIM4  ->  CR1     =   0x0001;  // enable timer

M.B.

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Hmmm... Du arbeitest, scheint's ,ohne ST firmware-lib. Die würd ich dir 
zum konfigurieren sehr empfehlen. Es gib auf der ST HP auch 
Beispielprogramme für alle peripheren Einheiten.
Schau da mal nach.

Grüße

von Ma B. (drumstick)


Lesenswert?

Ich habe eine Lib eingebunden. Jetzt erscheinen aber viele 
Fehlermeldungen. Die Timer Konfig muss ich ja trotzdem selber 
einstellen!??


Fehlermeldung:


C:\Program Files (x86)\Keil\ARM\INC\ST\STM32F10x\STM32F10x.h(490):

error:  #256: invalid redeclaration of type name "uc32" (declared at 
line 43 of "C:\Program Files 
(x86)\Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h")

Ich verstehe trotzdem nicht, warum es im Debugmodus funktioniert und in 
Echtzeit nicht. Ich vermute es hat mit den Clocks zu tun, aber finde den 
Fehler nicht!

Vielen Dank und freundliche Grüsse!

M.B.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.