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.
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.
Ich denke, dass ein Anfänger mit dieser Aufgabe doch etwas überfordert ist. Warum wählt man so ein Projekt?
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
Software Engerie logger schrieb: > ich bin, was software angeht eine ziemliche niete. Dann solltest du schleunigst anfangen das zu ändern!
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.
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.
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.
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.
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.
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 ;)
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
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.
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.
"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?
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
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.
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 :)
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
>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
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 !
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.