Gast
#4900384
Hallo zusammen! Bislang habe ich eigentlich nur uCs á la 328p programmiert... und taste mich gerade vorsichtig an einen ARM M3 heran. Ich habe mir ein Board und einen Programmer zugelegt (siehe Anhang). Nachdem ich mit CooCox diverse Probleme hatte und noch immer habe, bin ich auf EmBitz umgestiegen. Hier funktioniert soweit scheinbar alles einwandfrei. Zum flashen nutze ich CoFlash von ST (funktioniert wohl auch einwandfrei). Nun wollte ich einfach mal eine LED zum blinken bringen... doch nun verhält sich der Code recht seltsam und ich weiß nicht wieso?! #include "stm32f10x.h" int main(void) { unsigned long c = 0; SystemInit(); GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); while(1) { GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET); for(c=0;c<100000;c++); GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET); for(c=0;c<100000;c++); } } Wenn man die for-Schleifen wie oben gezeigt bis 100000 zählen läßt, ist die LED aus! Zählen sie nur bis 1000, leuchtet die LED minimal. Bei 100 mit etwa 50% Intensität. Bei 10 und 1 hell! Wieso? Sollte sie nicht immer langsamer blinken, desto größer die Grenze gewählt wird? Und noch mal... es blinkt NICHTS! Es verhält sich ehr wir ein DAC... ???
