Geschwindigkeitsmessung (SAB C80535)

OP (Firma: BKH) #5142921
Lesenswert?

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.
#5142960
Lesenswert?

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?
OP (Firma: BKH) #5142989
Lesenswert?

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.
#5143029
Lesenswert?

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?
#5143038
Lesenswert?

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.
(Firma: vyuxc) #5165194
Lesenswert?

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.
Gast #5165245
Lesenswert?

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 ;-)
#5165409
Lesenswert?

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.
#5165723
Lesenswert?

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.
Gast #5165736
Lesenswert?

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!
#5165826
Lesenswert?

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
Gast #5165917
Lesenswert?

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. ;-)
(Firma: vyuxc) #5166142
Lesenswert?

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.
#5166315
Lesenswert?

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.
OP (Firma: BKH) #5173065
Lesenswert?

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.
Gast #5173367
Lesenswert?

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.
Gast #5173451
Lesenswert?

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 :-)
Gast #5173500
Lesenswert?

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.
Gast #5173510
Lesenswert?

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.
Gast #5173719
Lesenswert?

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.
Gast #5173799
Lesenswert?

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.
Gast #5173989
Lesenswert?

>> 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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren