STM32F4 delay

#3894504
Lesenswert?

Hallo!
Ich nutze das STM32F4 Discovery Board und wollte eine delay funktion 
schreiben wie sie in vielen tutorials gemacht wird:
1
void delay(_IO uint32_t time){
2
    while(time--);
3
}

Wie kann ich jettz aber eine bestimmte Sekunden/Millisekunden anzahl 
"einstellen"?
Gast #3894644
Lesenswert?

Martin Fischer schrieb:

>
1
> void delay(_IO uint32_t time){
2
>     while(time--);
3
> }
4
>

Solche delay-Schleifen sind irgendwie Kokolores.
Wenn Du im ms Bereich bleibst, kannst Du auf den Systick zurückgreifen. 
Im µs Bereich nehme ich den Cyclecounter (der wird mit jedem ALU Takt um 
eins erhöht). Die Doku dazu findest Du bei ARM. Im ST RefManual steht 
dazu nichts. Vorteil des Cyclecounter ist, dass er keine ISR benötigt, 
somit keine Rechenzeit kostet. Der Cyclecounter liegt bei 0xE000EDFC, 
0xE0001000 und das Zählerregister bei 0xE0001004.
Bei Fragen fragen.
#3894648
Lesenswert?

Das ist dann eine Frage, welche bzw. ob Bibliotheken von ST verwendet 
werden. Teilweise bringen die Entwicklungsumgebungen eben eigene 
Hardwareabstraktionsschichten mit. In Eclipse wirst du wahrscheinlich 
dein eigenes Repository für die Bibliotheken pflegen müssen oder einfach 
alle reinkopieren. Die ST Libs gibts komplett zum Download, z.B. bei den 
Ressourcen zum STM32F4DISCO. Darauf basiered dürftest du dann arbeiten 
können.

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