Hallo liebe Community, für die Schule habe ich die Aufgabe ein Programm zur Geschwindigkeitsmessung zu entwickeln. Das Problem ist aber dabei, dass uns der Lehrer fast nichts erklärt und dadurch weiß ich nicht mal wo ich da anfangen soll. Die Aufgabenstellung ist folgende: Geschwindigkeitsmessanlage mit LCD Anzeige. Messung in km/h. 2 Interupts 1 Timer Start/Stop Das ist die Aufgabenstellung, doch wie bereits erwähnt weiß ich hier nicht einmal wo ich anfangen sollte mit dem Programm. Deswegen wollte ich hier einmal fragen ob mir hier jemand helfen kann. Die einzige Idee die ich und mein Mitschüler zu dieser Aufgabe bis jetzt hatten, ist das System durch zwei Lichtschranken zu realisieren, da man ja so den Zeitraum erfassen kann, den ein Objekt auf einer gewissen Strecke zwischen den zwei Sensoren braucht und anhand dessen kann man ja dann die Geschwindigkeit berrechnen. Das Problem ist nur das ich und auch mein Mitschüler keine Ahnung haben wo wir da mit dem Progamm anfangen sollen, geschweige denn was wir da überhaupt Programmieren müssen. Vielen dank schonmal im Vorraus.
Welche Kenntnisse sind denn vorhanden? Welche Hardware? Habt ihr einen C-Compiler für den µC oder soll das in Assembler gehen? Habt ihr schonmal Texte in einem LCD Modul ausgegeben? All das sollte geklärt sein. Prinzip: Interrupt 1 wird beim Start von Lichtschtranke 1 ausgelöst. Da wird ein Timer mit einer sinnvollen Frequenz gestartet und auf 0 gesetzt. Der Timer zählt nun hoch..... Interrupt 2: Timer wird gestoppt. Wert auslesen. Der gelesene Wert entspricht einer bestimmten Zeit, diese hängt von der Taktfrequenz ab. V=s/t, also die Strecke zwischen LS1 und LS2 durch die gemessene Zeit teilen, das gibt die Geschwindigkeit. In Text umwandeln und am LCD ausgeben. Zu beachten ist noch dass der Timer nicht ohne Ende zählen kann. Überläufe müssen behandelt werden. Wo hängt es nun?
Erstmals danke für die schnellen Antworten. Soweit ich weiß soll das nur über einen Compiler laufen, da wir für die Messung der Geschwindigkeit keine echten Sensoren nutzen sondern, diese dann anscheinend nur simmulieren. Also unser Lehrer meinte wir hätten dann einfach ein Gerät das die Taktflaken simmuliert. An Vorkenntnissen, wir können in C gut programmieren, wovon wir beide aber leider keine Ahnung haben, ist die Interrupt Steuerung. Das hat unser Lehrer so schwammig erklärt, das man davon nichts verstanden hat. Und wir hatten bis jetzt noch keine Praktischen Aufgaben wo wir Texte auf einer LCD Anzeige ausgeben sollten, dies wurde uns bis jetzt auch nur ungefähr erklärt, wie es gehen soll. Von daher, grundlegend wüsste ich, wie ich das Progamm schreiben sollte, aber dann ab den Interrupts fängt es an zu hapern.
:
Bearbeitet durch User
Ich nutze immer die Methode der kleinen Schrite: 1. LCD am Prozessor anschließen. 2. Initialisierung machen 3. Texte beispielsweise ausgeben. Dazu bemühe ich Google und das Datenblatt des LCDs. Ein Scope kann dabei hilfreich sein. Auch zu Interrupta 8051 gibt es viele Beispiele, die sucht man sich wenns LCD etwas anzeigt. Also: Schritt 1: "Hallo Welt" ins LCD, dann kommt der nächste Schritt. Zeigt es etwas an?
Zuerst legt man den Meßbereich und die Genauigkeit fest. Dann den Abstand der beiden Lichtschranken. Dann rechnet man die Zeit für die kleinste und für die größte Geschwindigkeit aus. Und erst dann kann man anfangen, zu programmieren. Es ist nämlich ein Unterschied, ob man die Geschwindigkeit von Schnecken oder von Photonen messen will.
Das können wir leider erst nächste Woche Testen, weil wir den Unterricht dann erst wieder haben. Dadurch das wir das Prinzip mit den Lichtsensoren nur Theoretisch machen, weil wir keine Sensoren zur verfügung haben, ist der Messberreich schon festgelegt.
Wir haben keine LCD anzeige zur verfügung wesewegen wir das leider nicht testen können. Gibt es noch eine andere Möglichkeit, da wir momentan sonst nicht wissen wir wir weiter kommen sollen. Mit freundlichen Grüßen Tobi&Sven
Habt ihr schon mal was mit dem 535 gemacht? Das sind steinalte µCs von Siemens, 8051 kompatibel. Kein Flash, kein ISP, nix. Das Handling ist für heutige Verhältnisse unterirdisch. Ich bezweifle auch daß es für diese Magercontroller auch einen halbwegs vernünftigen C-Compiler gibt, geschweige denn eine halbwegs brauchbare IDE. Als die Dinger aktuell waren war Assembler Stand der Dinge. Macht was auf aktueller Hardware. Das ist deutlich weniger Frustrierend wie der alte Kram.
Michael X. schrieb: > Macht was auf aktueller Hardware. Das ist deutlich weniger Frustrierend > wie der alte Kram. Das ist ja sehr hilfreich. Damit solltest du dich aber an die Schule wenden. Die nimmt für die Anschaffung von aktueller Hardware gerne deine Spende entgegen.
:
Bearbeitet durch User
Tobias A. schrieb: > Wir haben keine LCD anzeige zur verfügung wesewegen wir das leider nicht > testen können. Das ist doch bestens: drückt Eurem 'bösen' Lehrer einfach den µC in die Hand und fertig. Ohne Anzeige kann er Euch ja keine falschen Meßwerte nachweisen. Nicht, um Eure Hausaufgaben zu machen, aber als im I-net frei verfügbare Quelle für eine Geschwindigkeitsmessung mit LC-Anzeige auf einem AVR: http://mino-elektronik.de/7-Segment-Variationen/LCD.htm#lcd6 Wenn Ihr ein eigenes Programm auf die Beine stellen wollt, solltet Ihr auch den Quelltext nachvollziehen können. Auch, wenn der Lehrer nicht alles erklärt hat, dann müßt Ihr ihn einfach einmal fragen. Das habe ich früher auch gemacht ;-)
Von Keil gibt es den Compiler. Die freie Variante kann man für solch eine Aufgabe verwenden. Der Code wird sicher nicht größer als damit geht. Und doch sicher ich hab vor vielen Jahren diesen Controller mit eben diesem Compiler programmiert....
Tobias A. schrieb: > Wir haben keine LCD anzeige zur verfügung wesewegen wir das leider nicht > testen können. Und eine serielle Schnittstelle? Ausgabe von Texten auf PC Terminalprogramm? Michael X. schrieb: > Als die Dinger aktuell waren war Assembler Stand der Dinge. Keil hatte auch einen Pascal Compiler, der wurde auch gerne an Schulen benutzt.
Michael X. schrieb: > Kein Flash, kein ISP, nix. Das Handling ist > für heutige Verhältnisse unterirdisch. D.h. Du kennst diese Boards nicht, sondern äußerst nur erdachte Vermutungen. Da ist mindestens ein RAM drauf und ein UART-Bootloader, d.h. man kann Programme in den RAM laden und ausführen. Je nach Typ ist noch ein Flash drauf oder ne Stützbatterie für den SRAM. Nur ein heutiger Debugger fehlt, man muß also über LEDs oder UART-Ausgaben debuggen. Michael X. schrieb: > Ich bezweifle auch daß es für diese Magercontroller auch einen halbwegs > vernünftigen C-Compiler gibt, geschweige denn eine halbwegs brauchbare > IDE. Der ist überhaupt nicht mager, sondern war sogar der Startschuß, auch MCs in breiter Front in C zu programmieren. Ich hab damit auch 1995 angefangen, in C zu programmieren. Damals gab es schon die ersten Flash-80C51 (AT89C2051). Vom Keil C51 gibt es eine Eval-Version auf 2kB limitiert und ohne float-Lib. Soweit ich mich erinnere, wird auch der Resetvektor auf 0x8000 verschoben, wo bei den Eval-Boards rein zufällig der SRAM anfängt.
Peter D. schrieb: > Vom Keil C51 gibt es eine Eval-Version auf 2kB limitiert und ohne > float-Lib. Soweit ich mich erinnere, wird auch der Resetvektor auf > 0x8000 verschoben, wo bei den Eval-Boards rein zufällig der SRAM > anfängt. Ich kenne das mit einem FlipFlop und einem XOR-Glied, mit denen die beiden Hälften des Adreßraums vertauscht werden. Das FF wird von /Reset zurückgesetzt (EPROM unten) und von A15 gesetzt. Damit "katapultiert" sich eine Monitor- oder Debugging-Firmware in den oberen Adreßbereich und erlaubt anschließend den Upload des zu testenden Programms ins RAM ab Adresse 0. So zu finden auf dem 80C535-basierten "VolksController"-Board, der in den 90ern im FB Feinwerktechnik der FH-Karlsruhe zum Einsatz kam.
Hab ich das richtig verstanden, daß du eine Geschwindigkeits-Messung mit LCD Anzeige programmieren sollst, aber Dir stehen weder Sensoren noch die LCD Anzeige zur Verfügung? So geht das nicht!
Thomas E. schrieb: > Michael X. schrieb: >> Macht was auf aktueller Hardware. Das ist deutlich weniger Frustrierend >> wie der alte Kram. > > Das ist ja sehr hilfreich. Damit solltest du dich aber an die Schule > wenden. Die nimmt für die Anschaffung von aktueller Hardware gerne deine > Spende entgegen. Mit 20 € käme man sicher weiter. Aber es könnte auch sein, daß der Lehrer dann neu lernen müßte. Manchmal ist dies das größere Problem. mfg klaus
Klaus R. schrieb: > Aber es könnte auch sein, daß der > Lehrer dann neu lernen müßte. Manchmal ist dies das größere Problem. Sehe ich auch so. Als Schule bekommt man sicherlich ein paar Eval-Boards a` la Discovery, XPresso, usw. für lau. Education wird gefördert. Sind ja die Anwender von morgen. ;-)
Peter D. schrieb: > Michael X. schrieb: >> Kein Flash, kein ISP, nix. Das Handling ist >> für heutige Verhältnisse unterirdisch. > > D.h. Du kennst diese Boards nicht, sondern äußerst nur erdachte > Vermutungen. Sicher. Ich hab noch irgendwo ein 80537 Developmentboard rumfahren. Trotzdem ist das rummachen mit einem Monitorprogramm ziemlich aus der Mode. Für Anfänger wäre auch ein anständiges Debugging hilfreich.
Faktor schrieb: > Als Schule bekommt man sicherlich ein paar Eval-Boards a` la Discovery, > XPresso, usw. Neumodisches Teufelszeug, da kann man doch die 30 Jahre alten Skripten nicht mehr gebrauchen und müsste sich in was neues einarbeiten...
Klaus R. schrieb: > Mit 20 € käme man sicher weiter. Aber es könnte auch sein, daß der > Lehrer dann neu lernen müßte. Manchmal ist dies das größere Problem. > mfg klaus Johannes S. schrieb: > Neumodisches Teufelszeug, da kann man doch die 30 Jahre alten Skripten > nicht mehr gebrauchen und müsste sich in was neues einarbeiten... Dazu müsste man ganz einfach unser Bildungsministerium in die Wüste schicken! Die Lehrer sind in den wenigsten Fällen daran Schuld.
:
Bearbeitet durch User
Johannes S. schrieb: > Tobias A. schrieb: >> Wir haben keine LCD anzeige zur verfügung wesewegen wir das leider nicht >> testen können. > > Und eine serielle Schnittstelle? Ausgabe von Texten auf PC > Terminalprogramm? > > Michael X. schrieb: >> Als die Dinger aktuell waren war Assembler Stand der Dinge. > > Keil hatte auch einen Pascal Compiler, der wurde auch gerne an Schulen > benutzt. Ja wir haben die Möglichkeit das über ein Terminalprogramm zu testen.
Stefan U. schrieb: > Hab ich das richtig verstanden, daß du eine Geschwindigkeits-Messung mit > LCD Anzeige programmieren sollst, aber Dir stehen weder Sensoren noch > die LCD Anzeige zur Verfügung? > > So geht das nicht! Aber genau so ist es leider. Deswegen wissen wir auch nicht wo wir da anfangen sollen.
Johannes S. schrieb: > Faktor schrieb: >> Als Schule bekommt man sicherlich ein paar Eval-Boards a` la Discovery, >> XPresso, usw. > > Neumodisches Teufelszeug, da kann man doch die 30 Jahre alten Skripten > nicht mehr gebrauchen und müsste sich in was neues einarbeiten... es gibt... 1. einen Lehrplan 2. Vorgegebene Abschlussprüfungen in der Berufsschule. 3. ein sehr begrenztes Budget für Material. Das ganze dann noch bitte Schülertauglich. Ein einfaches Steckbrett ist unzweckmäßig... 4. nicht für alles neue passende Literatur/Skripte. Das muss didaktisch sinnvoll aufbereitet sein, sonst nutzt die beste Technik nichts und der Schüler versteht auch nichts 5. Ausreichender Zeitansatz für Personal. Mit 2 Stunden/Woche kann man keine Sammlung pflegen und erweitern.
Klaus R. schrieb: > Mit 20 € käme man sicher weiter. Aber es könnte auch sein, daß der > Lehrer dann neu lernen müßte Wie gesagt gibt es für 28 EUR neue vollständig kompatible 8051 Boards mit Bootloader und Debugger, da müsste der Lehrer nichts ändern und auch die Prüfungen bleiben gleich: http://de.rs-online.com/web/p/entwicklungskits-prozessor-mikrocontroller/8652378/ Könnten sich die Schüler vielleicht sogar selber leisten, statt eine weitere Smartphone APP :-)
Lothar schrieb: > Wie gesagt gibt es für 28 EUR ... Und Du glaubst mit dieser Anschaffung wäre auch nur ein Problem des TO gelöst? Meines Erachtens mangelt es an Interesse, sich mit dem Problem auseinanderzusetzen. Selbst nach einem Monat herrscht beim TO noch völlige Planlosigkeit, sodaß jede Antwort hier überhaupt nicht verstanden wird. Schuld ist natürlich der böse Lehrer, der die Lösung zur Aufgabe nicht gleich mitgeliefert hat.
Johannes S. schrieb: > Und da wundert man sich über den Fachkräftemangel? Ob man jetzt Assembler auf einem 8051, einem PIC oder einem ARM programmieren lernen soll, das Prinzip ist das gleiche. Nur, dass alte Prozessoren meist einen übersichtlicheren Befehlssatz haben, was durchaus erwünscht ist. Didaktisch wertvoller wäre es allerdings, wenn man das nicht vorhandene LCD durch (hoffentlich verfügbare) ein 7-Segment-Anzeigen ersetzt.
Schreiber schrieb: > Assembler auf einem 8051, einem PIC oder einem ARM Assembler auf einem Cortex-A 32-bit z.B. Raspberry Pi ist für einen Anfänger machbar aber Cortex-M hat schon viele merkwürdige Fallstricke da an der falschen Stelle gespart. Und Cortex-A 64-bit ist wohl nur noch für optimierende Compiler was.
Lothar schrieb: > Assembler auf einem Cortex-A 32-bit z.B. Raspberry Pi ist für einen > Anfänger machbar aber Cortex-M hat schon viele merkwürdige Fallstricke > da an der falschen Stelle gespart. Also dann och besser den 8051. Bis man bei einem üblichen ARM-Prozessor alle Register initialisiert hat (in Assembler) ist man bei einem 8051 schon fast mit dem Programmieren fertig. Besonders übersichtlich ist der Befehlssatz von einem ARM auch nicht. Beim 8051 passt alles auf ein Blatt Papier. Hat also auch Vorteile, so ein Museumsprozessor.
Schreiber schrieb: > Also dann doch besser den 8051 Bis man bei einem üblichen ARM-Prozessor > alle Register initialisiert Wir fangen mit dem 8051 an aber ein einfacher ARM wie z.B. der ARM11 im Raspberry Pi 1 da muss nichts gross initialisiert werden. Im Gegensatz zum Cortex-M braucht der erst mal auch nicht unbedingt einen Stack. Und für den Anfang kommt man mit den 30 ursprünglichen Assembler-Befehlen vom ersten ARM2 aus das sind sogar weniger als beim 8051. Gibt haufenweise Bare-Metal Tutorials dazu.
>> Hab ich das richtig verstanden, daß du eine Geschwindigkeits-Messung mit >> LCD Anzeige programmieren sollst, aber Dir stehen weder Sensoren noch >> die LCD Anzeige zur Verfügung? > Aber genau so ist es leider. Deswegen wissen wir auch nicht wo wir > da anfangen sollen. Es sollte klar sein, daß es unmöglich ist, ein nicht existentes Display anzusteuern. Ebenso kannst du das Programm ohne Sensoren nicht testen. Was du also als allererstes brauchst ist ein Display und die dazugehörige Anleitung. Während du auf die Hardware wartest, kannst du ja schonmal die Anleitung dazu lesen. Was den Sensor angeht, kann man den durch eine Simulations-Schaltung anchbilden, wenn man denn sehr genau weiss, wie das Ausgangssignal aussehen wird. Also finde das heraus, baue dann eine Simulationsschaltung. Ich habe das starke Gefühl, daß du da in Wahrheit GAR NICHTS programmieren sollst, sondern eine Vorgehensweise planen sollst. Von Akademikern erwartet man, dass sie das können. Im Beruf sind solche Probleme alltäglich. Da muss man oft Konzepte erstellen und Aufwände schätzen, obwohl viele Voraussetzungen noch unklar sind. Daher würde so eine Übungsaufgabe durchaus Sinnvoll 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.