Hallo zusammen,
ich habe mit dem STM32F4-Disco das Problem, dass ich einen 1ms Systick
nicht hin bekomme. Die Beispiele im Netz sind eindeutig, aber bei mir
kommt der Systick Interrupt nur alle 3.14 (PIT!!!) Millisekunden.
Programmiert wird in C++ und der CooCox IDE.
1 | int main()
|
2 | {
|
3 | SystemInit();
|
4 | RCC_ClocksTypeDef RCC_Clocks;
|
5 | // Timer auf 1ms einstellen
|
6 | RCC_GetClocksFreq(&RCC_Clocks);
|
7 | SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);
|
8 |
|
9 | while(1)
|
10 | {
|
11 | }
|
12 | }
|
13 |
|
14 | extern "C" void SysTick_Handler(void)
|
15 | {
|
16 | // Tick für Pause
|
17 | if(Systick_Delay != 0)
|
18 | {
|
19 | Systick_Delay--;
|
20 | }
|
21 | }
|
Die Delays sind viel zu lange und ich hab das ganze mit einem Pin Toggle
nachgemessen. Das bringt mir zwar wieder ungenauigkeiten, aber nicht in
dieser Größenordnung. Hat jemand eine Ahnung? Die Takte sind alle genau
so wie im RCC Header beschrieben.
Wäre sehr dankbar wenn jemand eine Vermutung hätte, ich weiß nicht mehr
wo ich weiter suchen sollte.