STM32: _delay_us() und seine Freunde.

#3436031
Lesenswert?

Guten Abend zusammen,
ich bin gerade wieder Anfänger geworden und mache meine ersten 
Gehversuche mit einem STM32F4discovery, CooCoxIDE und ARM-GCC. Bei den 
ersten Versuchen geht es mir darum quick & dirty alte Hardware, die am 
AVR lief, wieder ans Laufen zu bekommen - und an der Stelle vermisse ich 
am meisten die schönen alten _delay-Funktionen.

(Konkret geht es mir darum, früh genug herauszubekommen, an welchen 
Stellen ich Pegelwandler brauche und wo nicht - und die noch rechtzeitig 
vor Weihnachten bestellen zu können - aber das ist OT).

Momentan bin ich einfach "lost in Durcheinander" - es scheint einige 
Versuche einer Implementierung im www zu geben, manche auf dem 
SysTick-Timer beruhend - aber gibt es für so einfache Funktionen keine 
Standardlösung?

Ein verwirrter
W.T.
#3436048
Lesenswert?

Im Unterschied zum AVR ist das Laufzeitverhalten der Cortexe nicht 
ausschliesslich von den Befehlen selbst abhängig, sondern beispielsweise 
auch von den Waitstates und ob der Code grad in RAM oder ROM sitzt. Das 
steht einem simplen delay_us im Weg.

Wenn man an Stelle des Systick unbedingt Laufzeitschleifen verwenden 
will, beispielsweise um den Systick völlig frei zu haben oder weil 
ARM7/9 keinen haben, dann empfiehlt es sich, sie anfangs zu 
kalibirieren. Also die Laufzeit der Routine beim Start gegen eine 
bekannte Zeit zu messen und daraus einen Faktor zu gewinnen.
#3436073
Lesenswert?

Daraus lese ich zwischen den Zeilen: Eine Standardlösung gibt es nicht. 
Dann verschiebe ich meine Planung: Erst mehr in die Timer einsteigen und 
dann mit der Hardware weitermachen. Ich stehe nicht unter Zeitdruck, und 
meine kompletten ARM-Kenntnisse sind deutlich weniger als 10 Stunden 
alt.

Danke für die Antwort!
#3436388
Lesenswert?

Hallo Gerhard,
danke für den Tipp und das Beispiel. Werde ich mir mal in Ruhe zu Gemüte 
führen. Das ist dann auch die richtige Gelegenheit, mich an die neue 
Projektstruktur und die Trennung von *.c und *.h-Dateien zu gewöhnen. 
Bislang hatte ich immer ein flaches Verzeichnis mit allen 
Source-Dateien.

Viele Grüße
W.T.

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