Hallo Leute ich habe hier ein Problem, welches mich fast verzweifeln lässt. Wenn ich folgenes Blink Beispiel auf den Chip flashe, funktioniert alles super. Wenn ich lediglich den Wert in der ersten Delay in 450 oder größer ändere wird der Code danach nicht mehr ausgeführt. Wenn ich mit dem Debugger Schaue und beim Rücksetzen des Pins einen Breakepoint setze, wird dieser auch erreicht. Ein Breakepoint beim Setzen wird nicht erreicht. Der Chip hängt aber nirgendwo sondern erricht nur immer wieder den ersten Breakepiont... Wie gesagt mit Delay(400) läuft alles wie geplant...
1 | #include "stm32f4xx.h" |
2 | #include "stm32f4xx_rcc.h" |
3 | #include "misc.h" |
4 | #include "stm32f4xx_gpio.h" |
5 | #include "stm32f4xx_spi.h" |
6 | #include "stm32f4xx_tim.h" |
7 | #include "ADXL345.h" |
8 | |
9 | /*Prototypen*/
|
10 | |
11 | |
12 | void Systick_Handler(void); |
13 | void Delay(uint32_t cycles); |
14 | |
15 | |
16 | |
17 | /* globale Variablen*/
|
18 | |
19 | uint32_t Ticks=0; |
20 | |
21 | |
22 | |
23 | |
24 | int main(void) |
25 | {
|
26 | |
27 | SystemInit(); |
28 | SysTick_Config(SystemCoreClock/ 1000); |
29 | |
30 | |
31 | GPIO_InitTypeDef GPIO_InitStruct; |
32 | |
33 | RCC_AHB1PeriphClockCmd(ADXL345_GPIO_Clock, ENABLE); |
34 | |
35 | |
36 | |
37 | GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9; |
38 | GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; |
39 | GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; |
40 | GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; |
41 | GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; |
42 | GPIO_Init(ADXL345_SPI_Port, &GPIO_InitStruct); |
43 | |
44 | GPIO_WriteBit(ADXL345_SPI_Port, AXDL345_CS_Pin,SET); |
45 | |
46 | while(1) |
47 | {
|
48 | GPIO_WriteBit(ADXL345_SPI_Port, GPIO_Pin_9, RESET); |
49 | Delay(400); |
50 | GPIO_WriteBit(ADXL345_SPI_Port, GPIO_Pin_9, SET); |
51 | Delay(400); |
52 | |
53 | }
|
54 | }
|
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | void SysTick_Handler(void){ |
62 | |
63 | if (Ticks != 0) |
64 | Ticks--; |
65 | |
66 | }
|
67 | |
68 | |
69 | |
70 | void Delay(uint32_t cycles ){ |
71 | |
72 | Ticks = cycles; |
73 | while (Ticks>0); |
74 | }
|