STM32: _delay_us() und seine Freunde.

OP #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.
OP #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!
OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.