holger schrieb:
> Versuch das mal so:
Ich habe in einem anderen Beitrag folgenden Code von dir gefunden:
1 | /**
|
2 | ******************************************************************************
|
3 | * @file main.c
|
4 | */
|
5 |
|
6 | /* Includes ------------------------------------------------------------------*/
|
7 | #include <stdint.h>
|
8 |
|
9 | #include "misc.h"
|
10 | #include "stm32f4xx.h"
|
11 | #include "stm32f4xx_gpio.h"
|
12 | #include "stm32f4xx_rcc.h"
|
13 | #include "stm32f4xx_tim.h"
|
14 |
|
15 | #include "leds.h"
|
16 |
|
17 | void Delay1ms(uint32_t nCount);
|
18 | volatile uint32_t delay1ms;
|
19 |
|
20 | /**
|
21 | * @brief Main program
|
22 | */
|
23 | int main(void)
|
24 | {
|
25 | // Discovery Board LEDs
|
26 | LEDs_Init();
|
27 | SysTick_Config(SystemCoreClock/1000);
|
28 |
|
29 | while (1)
|
30 | {
|
31 | LED_ORANGE_ON;
|
32 | Delay1ms(100);
|
33 | LED_ORANGE_OFF;
|
34 | Delay1ms(300);
|
35 | }
|
36 | }
|
37 |
|
38 | /**
|
39 | * @brief This function handles SysTick Handler.
|
40 | * @param None
|
41 | * @retval None
|
42 | */
|
43 | void SysTick_Handler(void)
|
44 | {
|
45 | if(delay1ms) delay1ms--;
|
46 | }
|
47 |
|
48 | /**
|
49 | * @brief Delay Function.
|
50 | * @param nCount:specifies the Delay time length.
|
51 | * @retval None
|
52 | */
|
53 | void Delay1ms(uint32_t nCount)
|
54 | {
|
55 | delay1ms = nCount;
|
56 | while(delay1ms);
|
57 | }
|
Was ich hierbei noch nicht verstehe ist, was du mit dieser Funktion
machst:
SysTick_Config(SystemCoreClock/1000);
Welchen Wert hat mein SystemCoreClock? Ich gehe mal davon aus, dass sind
die 168MHz beim STM32F4. Wie kommt man dann aber darauf, dass er jede
Millisekunde in den Systick_Handler geht?