mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dokumentation/Referenz zu C-Funktionen finden


Autor: Fliggenteppich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte nur einmal fragen, woher ihr eigentlich immer die 
Informationen zu den ganzen C-Funktionen und structs bekommt.
Ich habe bisher nur AVRs programmiert und da eigentlich nur _delay_ms(x) 
und *_us(x) benutzt. Alles andere wurde immer direkt in die Register 
geschrieben, die im Datasheet stehen.
Nun will ich aber mit ARM anfangen und habe mir dafür ein 
STM32F103-Board besorgt. Mein Problem nun:
Woher bekomme ich die Refernz zu den ganzen structs, mit denen man 
offensichtlich die GPIOs alle definieren muss. Oder auch die 
Entsprechungen zu z.B. _delay_ms(x) oder auch ISR(x)?
Im Datasheet finde ich dazu eigentlich gar nichts.

Danke!

Autor: Jan B. (do9jhb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Referenz zur AVR-libc gibt's die Doku zu allen C Funktionen: 
http://nongnu.org/avr-libc/user-manual/modules.html

Autor: Fliggenteppich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, danke.
Allerdings ging es mir jetzt eher um den STM32F103. Mit dem AVR komme 
ich eigentlich problemlos zurecht. Nur ist der STM32 mein erster ARM und 
ich habe keine Ahnung, was es da so für Möglichkeiten gibt, abgesehen 
von dem, was im Datasheet erläutert wird.

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meist ist sowas direkt in den .h u. .c Files dokumentiert!?

Autor: Fliggenteppich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Teo D. schrieb:
> Meist ist sowas direkt in den .h u. .c Files dokumentiert!?

Naja, ich hatte auf irgendeine Übersicht gehofft. Die *.h files sind 
schließlich nicht immer wirklich übersichtlich.
Aber danke.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Bernd K. (prof7bit)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Reference-Manual stehen alle Register drin und alle Bits. In den 
header-Dateien sind alle Register und alle Bits definiert unter exakt 
den selben Namen wie im Reference-Manual nach einem ganz systematischen 
Schema. Du kannst genauso vorgehen wie beim AVR: Reference Manual 
studieren -> Code schreiben, es ist kein prinzipieller Unterschied und 
auch nicht irgendwie schwieriger oder komplizierter, nur teilweise 
vielleicht etwas umfangreicher.

> Die *.h files sind schließlich nicht immer wirklich übersichtlich.

In den Headern musst Du auch nicht selber herumsuchen, die IDE hilft Dir 
mit Vorschlägen und Codevervollständigung beim Tippen der langen 
Makronamen oder mit einem Mausklick sucht sie Dir die Stelle raus und 
zeigt sie Dir an. Sobald Du das System raus hast wie du vom Namen im 
Manual auf den Namen im Header kommst (geht schnell, ist simpel) geht 
alles wie von selbst.

Und wenn Du zum Beispiel weißt wie man einen UART bei einem AVR zum 
Laufen bekommt wird Dir die gleiche Übung bei einem ARM ebenfalls 
gelingen, alle Konzepte sind gleich und die Umsetzung sehr ähnlich, 
vieles wird Dir bekannt vorkommen.

> ISR()

Dieses magische Makro gibts nicht, bei ARM ist es viel einfacher, eine 
Interrupt-Funktion ist eine ganz normale Funktion, der Name muß nur 
genau dem Namen des entsprechenden Interrupt-Handlers entsprechen wie er 
im Startup-Code definiert ist, der Linker wird sie dann finden und 
verwenden. Wichtig: bei ARM müssen alle Interrupts zunächst einzeln 
enabled werden bevor sie funktionieren.

Schau Dir am Anfang viel Beispielcode an. Das hilft. Versuche vor allem 
Minimalbeispiele zu finden die keine monströsen Libs und APIs verwenden, 
je kleiner und übersichtlicher die Beispiele sind desto schneller kannst 
Du durchschauen wie was zusammengehört und wie es funktioniert. Sobald 
Du dort durchblickst und genug Sicherheit darin hast den Beispielcode 
nach Herzenslust zu modifizieren und umzukrempeln und es danach immer 
noch funktioniert fängst Du an Dein eigenes Projekt auf diesem 
aufzubauen.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.