STM8L + Cosmic compiler: optimierung, die code unlogisch macht

Gast #4051863
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren