Forum: Mikrocontroller und Digitale Elektronik STM32 Programmierung Variablen und Funktionen


von Mark (Gast)


Lesenswert?

Hallo, ich hätte mal ein paar Grundsatzfragen zur Programmierung:
Ich würde mein Programm gern in viele Funktionen bzw. externe Datein 
aufteilen, so möchte ich:

1. Externe Dateien für die Konfigurationen (GPIO, RCC, DMA, ect.) 
anlegen

Dafür Muss ich aber unter anderem Werte übergeben die ich auch in der 
Main-Funktion benötige. Wie übergibt man die am Sinnvollsten? Globale 
bzw.externe Variablen (sind "böse"ich weiß) oder über einen Header (wenn 
möglich) oder doch eher als Parameter?

Sollten die Konfigurationsfunktionen lieber aus der Main-Funktion oder 
davor aufgerufen werden, ich denke beides schon gesehen zu 
haben(vielleicht müssen auch einige vorher aufgerufen werden).


2. Funktionen in der Main für das eigentliche Programm:
Auch hier würde ich gern externe Dateien einbinden. Was nutzt man hier 
am besten wenn man mehrere Rückgabeparameter hat. Eine Referenz oder 
globale Variablen? Oder ist alles Murks?


Ich habe hier ein bisschen gelesen und es scheint als ob jeder Prozessor 
andere "Vorlieben" hat. Mir geht es vor allem auch um die Performance 
die dabei eventuell verloren geht.

Danke schon mal an Denjenigen der sich dem hier an nimmt.

Gruß Mark

von Matthias K. (matthiask)


Lesenswert?

Mark schrieb:
> Dafür Muss ich aber unter anderem Werte übergeben die ich auch in der
> Main-Funktion benötige.

Ich versuche möglichst viel in Strukturen zusammen zufassen, ist 
übersichtlicher als viele verteilte Variablen. Meist dann global 
definiert.

All so viel Sorgen um den Speicherplatz würde ich mir am Anfang nicht 
machen, nimm einfach einen STM32 mit viel SRAM und Rechenleistung hat 
der auch reichlich.

Ob Du die Konfiguration aus dem Startup oder aus Main aufrufst dürfte 
kaum von Bedeutung sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.