Forum: Mikrocontroller und Digitale Elektronik Software Engerie logger


von Software Engerie logger (Gast)


Lesenswert?

Guten Tag alle zusammen,
ich bin, was software angeht eine ziemliche niete. Mein Aufgabe/Projekt 
besteht aus den folgenden Sachen:
Ich muss eine Programm in C schreiben. Die Hardware habe ich soweit 
fertig und lässt sich auch programmieren. Ich habe ein STm32f103 
controller benutzt.

Funktion:
Ich möchte mit der Platine, mittels eines Stromwandlers die Aktivität 
verschiedener Geräte (zbsp. Pumpe) aufzeichen. Das ganze soll mit einem 
RTC geschehen. Ich muss jeweils die Uhrzeit, in der das gerät aktiv war, 
aufzeichnen und auf eine microsd karte abspeichern ( und über usb auch 
drauf zugreifen können). Zudem wird der controller noch über eine 
Batterie versorgt, damit die zeit weiterlaufen kann.

Ich habe keine ahnung wie ich da dran gehen soll (softwaretechnich). Ich 
kann grade mal die Grundlagen von C.

Könnte mir einer da helfen?

Vielen Dank im voraus.

von Klaus Dieter (Gast)


Lesenswert?

Software Engerie logger schrieb:
> Ich
> kann grade mal die Grundlagen von C.

Und warum musst du dann so etwas machen? Das Vorhaben ist doch dann 
eigentlich schon zum Scheitern verurteilt.

Und wenn dir hier jemand helfen soll, dann müsstest du schon ein 
bisschen mehr zu Hardware schreiben (was ist wo bzw. wie angeschlossen). 
Ein (grober) Schaltplan wäre da ganz nett.

von PittyJ (Gast)


Lesenswert?

Ich denke, dass ein Anfänger mit dieser Aufgabe doch etwas überfordert 
ist.
Warum wählt man so ein Projekt?

von oldmax (Gast)


Lesenswert?

Hi
>Ich denke, dass ein Anfänger mit dieser Aufgabe doch etwas überfordert
>ist.
>Warum wählt man so ein Projekt?
Ich glaub, wir haben alle mal auf einer Schulbank gesessen und unseren 
Eltern erklärt, warum die schlechte Note in einem Fach ganz plötzlich 
aufgetaucht ist.... "Wir haben eine Aufgabe bekommen, auf die wir nicht 
vorbereitet wurden......." Ist doch verständlich, oder ?
Es ist einfach unglaublich, das immer wieder versucht wird, durch sich 
dumm stellen, andere die Arbeit machen zu lassen. Nix desto trotz, 
unabhängig von der Software, versuch doch bitte erst einmal eine 
Programmstruktur hinzuzaubern. Frei nach em Motto: Was braucht das 
Programm:
Eine Eingabe, wofür auch immer und weil eine Eingabe schon  mal prellt, 
gleich eine Entprellung dafür
Einlesen von Analogwerten und Ablegen für weiterverarbeitung
Einen Timer initialisieren, einen Timer braucht man immer
Einen UART initialisieren, vieleicht sollen Daten an PC gesendet werden
Ein paar LED, soll ja auch etwas fürs Auge sein und eine persönliche 
Note tragen
Ein Display, die Kurven lassen sich schlecht mit LED's anzeigen
So, und nun mach, das das geht. Bau dein Programm mit einzelnen Modulen 
auf und mach erst weiter, wenn das angefasste Modul läuft. Die 
Reihenfolge ergibt sich schon. Und wenn du dann Fragen hast, dann hört 
sich das nicht so an: "Ich hab keinen Plan, könnt ihr mir das mal machen 
....."
Man, an was für eine Schule gehst du eigentlich, das noch nicht einmal 
das Einfachste, das Erstellen eines Ablaufplanes als Grundlage 
beigebracht wird. Das ist absolutes Basiswissen. Wie willst du denn ein 
Programm schreiben nach solch einer lächerlichen Anfrage?
Gruß oldmax

von Trollversteher (Gast)


Lesenswert?

Software Engerie logger schrieb:
> ich bin, was software angeht eine ziemliche niete.

Dann solltest du schleunigst anfangen das zu ändern!

von Software Engerie logger (Gast)


Lesenswert?

bin als aushilfskraft als Elektrotechniker in der Entwicklung tätig. 
Habe mit studium ET angefangen bin aber erst im 2ten semester und habe 
noch kaum erfahren was softwareprogrammieren angeht. Kann mit hardware 
besser umgehen. Leider kann ich den schaltplan nicht hochladen, wegen 
Datenschutz meiner Firma usw.

von Software Engerie logger (Gast)


Lesenswert?

wir sind im studium noch nicht soweit. Wir programmieren zurzeit 
adjacencListen und Matrixen und so weiter. Das Hardwarebezogene 
Programmieren kommt erst in den nächsten Semestern.

von Dominik S. (dasd)


Lesenswert?

Zwei Möglichkeiten:

1. Geh zu deinem Vorgesetzten und sag ihm, dass du nicht die 
Anforderungen erfüllst die nötig sind, um die dir gestellt Aufgabe zu 
erledigen.

2. Wenn du Zeit hast: Eigne dir das Wissen an.

von Karl H. (kbuchegg)


Lesenswert?

Es ist auch hilfreich, wenn man sich nicht von der scheinbaren 
Komplexität der gesamten Aufgabe blenden lässt und dasitzt, wie das 
Kaninchen vor der Schlange.

Auch Software wird nicht an einem Abend in allen Details geschrieben, 
sondern ensteht schichtweise aus Bausteinen. Lass dich nicht davon 
verrückt machen, dass du JETZT nicht weißt, wie du Schritt 35 
programmieren sollst. Fang erst mal mit Schritt 1 an. Halte allerdings 
im Hinterkopf wo die Reise schlussendlich hingehen soll, damit du dich 
nicht verläufst.

Du sollst also feststellen, ob Verbraucher eingeschaltet sind. Wie 
machst du das, wie hast du dir das hardwaremässig vorgstellt? Und da 
programmierst du dir jetzt erst mal was dazu. Wenn dein Verbraucher 
eingeschaltet ist, soll von mir aus vom µC eine LED eingeschaltet 
werden. Ist der Verbraucher aus, soll sie wieder ausgehen.
Das wäre mein erster Schritt.

Wenn das dann klappt, mach ich den nächsten Schritt: Du sollst im 
Endeffekt ein Zeitprotokoll abliefern. Dazu brauchst du eine Uhr. Also 
widme ich mich im nächsten Schritt nur dieser Uhr. Wie wird sie 
gestellt, wie läuft sie, wie kann ich die Uhrzeit wieder abfragen?

Dann wäre eine Displaymöglichkeit nicht schlecht. Also wird losgelöst 
von allem andern ein Display in Betrieb genommen. Ob das LCD oder über 
UART ein Terminalprogramm auf dem PC ist, ist erst mal nicht so wichtig. 
Hauptsache ich habe eine Ausgabemöglichkeit.
Hmm. Tatsächlich wär das sogar was, was ich als allererstes angehen 
würde. Denn eine Ausgabemöglichkeit kann man immer brauchen.

Dann kommt der erste größere Schritt in Richtung Projekt: Jetzt werden 
die 3 unabhängig voneinander 'erforschten' Bereich zusammengeführt. Wird 
der Verbraucher eingeschaltet, soll nicht mehr eine LED angehen, sondern 
es wird von der RTC die aktuelle Zeit ausgelesen und zusammen mit einer 
entsprechenden Meldung auf meiner Anzeige ein entsprechender Text 
ausgegeben.


Und so geht das dann weiter und weiter bis irgendwann das 
Komplettprojekt fertig ist. IN SCHRITTEN!
Und plötzlich ist das alles nur noch halb so wild, weil jeder SChritt 
für sich überschaubar ist und eine relativ simple Aufgabenstellung 
beinhaltet. Auch hat man Suchbegriffe, mit denen man im Web suchen kann 
und sich das eine oder andere absehen kann.

von koocky (Gast)


Lesenswert?

Mein Lob an Karl Heinz, der es im Gegensatz zu den ganzen Vorpostern 
(die besser gar nichts geschrieben hätten) drauf hat auf den TE 
einzugehen, ohne dabei herablassend/beleidigend oder flapsig zu sein. 
Find ich wirklich gut.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

koocky schrieb:
> Mein Lob an Karl Heinz, der es im Gegensatz zu den ganzen Vorpostern
> (die besser gar nichts geschrieben hätten) drauf hat auf den TE
> einzugehen, ohne dabei herablassend/beleidigend oder flapsig zu sein.
> Find ich wirklich gut.


Ich verstehe einfach nicht, wie man bei der Menge an strandenden 
C-Analphabeten und Software-Jongleuren (1) die Zeit findet, alles zu 
beantworten, und (2) dabei noch die Nerven zu behalten.
Meine These: Karl Heinz ist ein Roboter, programmiert auf Freundlichkeit 
und Antworten. Grüße ;)

von oldmax (Gast)


Lesenswert?

Hi
>Meine These: Karl Heinz ist ein Roboter, programmiert auf Freundlichkeit
>und Antworten. Grüße ;)
Schöne These... aber so ist's nicht. SChließlich hat er nur mit 
freundlichen Worten nochmal aufgelistet, was ich vorher, wenn auch mit 
etwas "Härte" aufgezählt habe. Vielleicht sollte mann die Posts immer 
bis zum Schluß lesen, aber, Asche auf mein Haupt, ich tu's auch nict 
immer.
Ich kan verstehen, das jemand, der eine solche Aufgabe lösen soll und 
das Basiswissen (noch) nicht hat, wie der Ochse vorm Berg steht. 
Allerdings, so eine Aufgabe kommt doch nicht von ungefähr. Da gibt es 
(mindestens) eine Vorgeschichte. Und ich wiederhol es auch noch mal: es 
ist egal, in welcher Sprache ein Programm verfasst ist. Wenn der 
Programmierer nicht in der LAge ist, schon mal eine komplexe Aufgabe in 
kleine Teile zu zerlegen, wird er es nie begreifen. Das ist 
Voraussetzung zum Erfolg. Und diese Auflistung hat KH und auch ich 
vermißt. Aber egal, ich hoffe "Software Engerie logger" findet zu sich, 
denn wie kann man einen solchen Nicknamen nehmen, wenn da nicht die 
Bohne hintersteckt. Oder soll das bedeuten, das er sich mit seiner 
Aufgabe vollends identifiziert? Ich bezweifle das.
Gruß oldmax

von Karl H. (kbuchegg)


Lesenswert?

oldmax schrieb:

> Schöne These... aber so ist's nicht. SChließlich hat er nur mit
> freundlichen Worten nochmal aufgelistet, was ich vorher, wenn auch mit
> etwas "Härte" aufgezählt habe.

Sagen wirs mal so.
Ich wollt ihm noch eine 2-te Meinung geben, die bestätigt, dass das der 
Weg ist, den er gehen muss.

> Ich kan verstehen, das jemand, der eine solche Aufgabe lösen soll und
> das Basiswissen (noch) nicht hat, wie der Ochse vorm Berg steht.

Das haben du und ich nun wahrlich oft genug hier im Forum gesehen. Und 
es ist auch logisch, das muss so sein.

> Allerdings, so eine Aufgabe kommt doch nicht von ungefähr.

Ganz genau. So eine 'komplexe' Aufgabe fällt nicht einfach vom Himmel.
Das ganze Geheimnis, die Komplexität zu beherrschen, besteht darin sich 
die Dinge in weniger komplexe Teile runterzubrechen. Und dann eben noch 
mal und noch mal. Bis man bei Einzelteilen angelangt ist, die man 
überblickt und beherrscht. So kriegt man komplexe technische Systeme in 
den Griff.

von Software Engerie logger (Gast)


Lesenswert?

ok ich gehe jetzt schritt für schritt vor.'Ich habe nun erstmal eine LED 
angebaut an meine elektronik. Nun möchte ich mal die LED blinken lassen. 
Aber ich weiß nicht wie ich die Ports ansprechen soll. Ich habe einen 
Stm32f103 Controller und meine LED ist an GpioB Port 12 angeschlossen.

von Lutz (Gast)


Lesenswert?

"Blinky" in den Beispielen ist da dein Freund.

Allerdings kann man sich da nur Anregungen holen. Wie man etwas genau 
oder vielleicht auch anders macht, als man zunächst dachte. Das 
Basiswissen muß aber vorher da sein. Also mußt du das Usermanual lesen; 
hier alles, was mit GPIO zu tun hat. Kommst du eh nicht drum rum. Sonst 
ist die nächste Frage, wie du die LED wieder ausschaltest. Oder die 
Frequenz veränderst. Oder asymetrisch blinken läßt. Oder ...

Da du ja Hardwarewissen hast, wirst du die LED ja sicher auch mit 
Vorwiderstand betreiben?

von Software Engerie logger (Gast)


Lesenswert?

ich habe ein vorwiderstand. Habe in den port auf open drain gestellt und 
habe im internet diese befehlszeile gefunden

"
    GPIOB->BSRR = GPIO_Pin_12; // LED On
    delayloop();

    GPIOB->BRR = GPIO_Pin_12;  // LED Off
    delayloop ();

"
Weiß nicht wie ich das zum laufen bekomme

von Karl H. (kbuchegg)


Lesenswert?

Software Engerie logger schrieb:
> ich habe ein vorwiderstand. Habe in den port auf open drain gestellt und
> habe im internet diese befehlszeile gefunden

Tja.
Es liegt in der Natur der Sache, dass die Dinge meistens nicht so 
einfach sind, dass man mit ein paar 'im Internet gefundenen 
Befehlszeilen' etwas erreichen kann.
Zumindest in ein komplettes C-Programm wirst du das wohl einbetten 
müssen.


Da du ja über rudimentäre Kentnisse in C verfügst, wäre es daher nicht 
so schlecht da zb ein main() drüber zu stülpen und den Port auch mal zu 
initialisieren.

Lutz sagte es schon mittels
""Blinky" in den Beispielen ist da dein Freund."
Um das Studium (und das Verstehen) anderer Leute Code wirst du nicht 
herumkommen. Mit 'im Internet gefundenen Codestückchen' hat noch nie 
irgendjemand ein funktionierendes Programm auf die Beine stellen können, 
ohne nicht wenigstens die Basisdinge vorher gelernt zu haben.

Sorry, da führt kein Weg daran vorbei. Sonst wär das ganze nämlich 
watscheneinfach und man bräuchte keine Profis, die sowas jahrelang 
lernen, sondern es könnte jede Putzfrau (soll keine Beleidigung des 
Berufsstandes sein) zwischendurch mal ein Computerprogramm schreiben.

von Software Engerie logger (Gast)


Lesenswert?

ports und sowas ist alles initiallierst. Ich benutze die Programme 
meiner firma ich brauche nur eingeben ob es eingang oder ausgang ist und 
vom welchen typ.  Also initialisierung der Ports sowie der main und der 
clocks etc. ist komplett fertig. Ich muss mich tatsächlich nur noch mit 
der main beschäftigen :)

von Peter D. (peda)


Lesenswert?

oldmax schrieb:
> Aber egal, ich hoffe "Software Engerie logger" findet zu sich,
> denn wie kann man einen solchen Nicknamen nehmen, wenn da nicht die
> Bohne hintersteckt.

Es steckt zumindest dahinter, daß er krampfhaft vermeidet, selbst 
Geschriebenes wenigstens einmal Korrektur zu lesen.

Als Programmierer darf man keine Schreibfehler machen, eine CPU führt 
auch den größten Blödsinn aus.
Daher ist es eine gute (Programmier-)Übung auch Menschen gegenüber 
sorgsam zu schreiben.

Und man drückt damit auch Achtung bzw. Geringschätzung seinem Gegenüber 
aus. Der Tonfall der Antworten belegt das recht eindeutig.


Peter

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

>Das ganze Geheimnis, die Komplexität zu beherrschen, besteht darin sich
>die Dinge in weniger komplexe Teile runterzubrechen. Und dann eben noch
>mal und noch mal. Bis man bei Einzelteilen angelangt ist, die man
>überblickt und beherrscht.

...und schließlich all diese Einzelteile, entsprechend ihren 
Abhängigkeiten, logisch richtig zu einem Gesamtsystem zusammenfügt.

Grüsse

von Software Engerie logger (Gast)


Lesenswert?

naja ist egal. Auf so eine Hilfe kann ich gern verzichten. Dann kriege 
ich es alleine sogar besser hin ! Unter einer Community verstehe ich was 
anderes, aber nicht das, was ihr hier von euch gebt. Thread ist 
geschlossen/kann gelöscht werden. Von mir kommt nichts mehr.

Ps: LED ist programmiert und funktioniert wie sie funktionieren sollte !

von Software Engerie logger (Gast)


Lesenswert?

Danke an die Leute die versucht haben mir zu Helfen !

von ernie (Gast)


Lesenswert?

Software Engerie logger schrieb:
> naja ist egal. Auf so eine Hilfe kann ich gern verzichten.

Ich (und offensichtlich auch andere) habe(n) den Eindruck, das du 
eigentlich gar keine Hilfe willst, sondern eine schnelle Problemlösung. 
Abgesehen davon, das die von dir preisgegebenen Informationen sehr 
dürftig sind, besteht Hilfe manchmal eben nicht darin, jemandem seine 
"Probleme" zu lösen, sondern ihm aufzuzeigen, wie er sie selbst lösen 
kann.

Aber was soll's. Es geht auch ohne beleidigte Leberwürste!

MfG
Ernie

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.