STM32F4Discovery Systick Verständnisproblem

Gast #3929193
Lesenswert?

Man kann ja die Systicks folgendermaßen angeben:
1
SysTick_Config(SystemCoreClock/1000); //SystemCoreClock=168MHz

Daraus folgt ja, dass der entsprechende Interrupt 168.000 mal pro 
Sekunde ausgelöst wird oder bin ich da jetzt auf dem Holzweg?

Das heisst wenn ich folgendes programmiere:
1
SysTick_Config(SystemCoreClock/1680); //SystemCoreClock=168MHz

komme ich bei 100.000 Interrupts pro Sekunde raus.
wenn ich jetzt bei jedem Interrupt einen Wert nach oben Zähle, z.B. 
folgendermaßen:
1
int test=0;
2
void   SysTick_Handler(void){
3
  test=test+1;
4
  if (test==1000){
5
   test=0;}
6
}

Dann müsste nach einer Sekunde der Wert test einen Wert von 1000 
betragen richtig?

Danke schonmal und Grüße an alle
Gast #3929225
Lesenswert?

Aber wenn nach 168000 Zyklen ein Interrupt ausgelöst wird, dann bin ich 
doch bei 0.005952381ms

Gibt es eine Formel für den Interrupt?

Ich steck da irgendwie fest und steig da nicht wirklich durch.

Könnte mir das jemand Schritt für Schritt erklären?
Gast #3929248
Lesenswert?

Das mit 0.005952381ms war quark. Irgendwie war ich bei der Berechnug der 
Periodendauer (was für ein Blödsinn) :)

Also ist es quasi irrelevant was für ein Systemtakt verwendet wird
1
SysTick_Config(SystemCoreClock/1000);

Bewirkt immer ein auslösen des Interrupts bei einer Millisekunde, egal 
ob 168Mhz oder 8Mhz oder oder oder.
Richtig?

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