Hallo, ich hab folgenden Code:
1 | #include "stm8l15x.h"
|
2 | #include "stm8l15x_it.h"
|
3 |
|
4 | main()
|
5 | {
|
6 | uint8_t index;
|
7 | uint8_t element;
|
8 | CLK_DeInit();
|
9 | CLK_SYSCLKSourceSwitchCmd(ENABLE);
|
10 | CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
|
11 | CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
|
12 | while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)
|
13 | {}
|
14 | LCD_GLASS_Init();
|
15 | while(1)
|
16 | {
|
17 | for(element = 0x00; element <= 0xFF; element++){
|
18 | for(index = 0x00; index <= 0xFF; index++){
|
19 | LCD->RAM[(uint8_t)element] = 0x00;
|
20 | LCD->RAM[(uint8_t)element] = index;
|
21 | }
|
22 | LCD->RAM[(uint8_t)element] = 0x00;
|
23 | delay_ms(750);
|
24 | }
|
25 | }
|
26 | }
|
Problem:
die erste for-schleife mit element wird wegoptimiert... D.h. element
bleibt immer als 0x00 stehen. Warum macht mir der Compiler das?