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"]
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.