paule schrieb:
> 1) Wie hoch ist die SystemCoreClock? Ich teile sie durch 1000 um eine ms
> zu erhalten, also 1s???
K.A. sag es du mir doch. Wer soll es wissen was du für einen pll
eingestellt hast.
paule schrieb:
> 2) Habe ich einen Vorteil, wenn ich das mit dem SysTick_Handler mache,
> anstatt mit einem "normalem Timer" und dessen Interrupts?
Dafür ist der SysTick_Handler ja geschaffen!
1 | paule schrieb im Beitrag #4544105:
|
2 | > void delay(int time){
|
3 | >
|
4 | > while(counter!=time){
|
5 | > }
|
6 | >
|
7 | > counter=0;
|
8 | > }
|
Vorsichtiger weise würde ich: uint32_t counter=0; als volatile
deklarieren (kann counter je negativ werden?).
Weiterhin fehlt dir ein Bezugspunkt in der Zeit in deiner Schleife! Hier
so geht es:
1 | void delay(int time){
|
2 | uint32_t current_time = counter;
|
3 | while(counter-current_time<time); //counter addiert in systick deshalt nennt man ihn sysTick_counter
|
4 | }
|
so würde ich das aus dem Nähkästchen programmieren.