Servus zusammen,
ich steige gerade wieder auf den STM32 ein (hatte länger nix damit 
gemacht und fange bei den basics an) aber leider bin ich jetzt auf ein 
Problem gestoßen, dessen Hintergrund ich gerne Verstanden hätte. Sollte 
auch super leich zu reproduzieren sein, sofern ein STM32F4-discovery 
board und CooCox CoIDE vorliegen. (Damit hätte ich dann wohl auch meine 
Umgebung definiert)
Die veränderten Dateien habe ich angehängt, der Rest ist von den 
Standard-Libs, die man in CoIDE einfach aktiviert und die dann 
automatisch ins Projekt kopiert werden.
Folgende Aufgabe :
Ich will eine LED innerhalb einer Interruptroutine ein- und ausschalten. 
Etwa im 1s Zyklus.
Das Problem :
So gehts :
| 1 | void TIM2_IRQHandler(void)
 | 
| 2 | {
 | 
| 3 |   static uint8_t i = 0;
 | 
| 4 | 
 | 
| 5 |   TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
 | 
| 6 | 
 | 
| 7 |   GPIO_ToggleBits(GPIOD, GPIO_Pin_13); // LD3, orange
 | 
| 8 | 
 | 
| 9 |   if( 2 == ++i )
 | 
| 10 |   {
 | 
| 11 |     GPIO_ToggleBits(GPIOD, GPIO_Pin_14); // LD5, red
 | 
| 12 |     i=0;
 | 
| 13 |   }
 | 
| 14 | }
 | 
So gehts nicht :
  (nur die rote LED blinkt, die orange nicht)
| 1 | void TIM2_IRQHandler(void)
 | 
| 2 | {
 | 
| 3 |   static uint8_t i = 0;
 | 
| 4 | 
 | 
| 5 |   GPIO_ToggleBits(GPIOD, GPIO_Pin_13); // LD3, orange
 | 
| 6 | 
 | 
| 7 |   if( 2 == ++i )
 | 
| 8 |   {
 | 
| 9 |     GPIO_ToggleBits(GPIOD, GPIO_Pin_14); // LD5, red
 | 
| 10 |     i=0;
 | 
| 11 |   }
 | 
| 12 | 
 | 
| 13 |   TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
 | 
| 14 | }
 | 
Woran kann das liegen?
Ich stehe vollkommen auf dem Schlauch. Für mich ist das gerade völlig 
unerklärlich!
Vielen Dank für eure Hilfe!
Grüße
Luigi