Forum: Mikrocontroller und Digitale Elektronik Ampelsteuerung 8051


von Martin (Gast)


Lesenswert?

hallo!

ich habe gerade die aufgabe bekommen eine ampelsteuerung mittels timer, 
interupt und dem programm ride zu erstellen. ich habe nicht wirklich 
ahnung davon und in drei wochen sind auch noch die prüfungen zum 
techniker.
hat irgend jemand ahnung oder kann mir ein fertiges programm schicken?
das wäre total geil!

gruss martin

von Jack B. (jackbraun)


Lesenswert?

>ich habe nicht wirklich ahnung davon

Wieso? Hast Du keinen Unterricht gehabt?

>ich habe gerade die aufgabe bekommen eine ampelsteuerung mittels timer,
>interupt und dem programm ride zu erstellen.

Wenn Du das nicht gelernt hast, kann niemand von Dir verlangen,
plötzlich programmieren zu können.

von techniker (Gast)


Lesenswert?

Du willst also deine Prüfung mit dem Wissen anderer bestehen?
Bist du Tagesschüler? Dann wären 3 Wochen ja ne lange Zeit um soetwas 
selber zu lernen. Wenn du Abendschüler bist, und nebenbei arbeitest, 
hast du wohl verloren.
Ihr habt bestimmt schon Monate vorher mit dem 8051 gearbeitet sonst 
würde euer Lehrer nicht diese Aufgabe stellen.
Ich bekomme ehrlich gesagt die Krise wenn ich soetwas lese...und 
schreibe besser nichts mehr...

von Uhu U. (uhu)


Lesenswert?

Ich fände es total ungeil, wenn einer als Techniker auf die Menschheit 
losgelassen würde, der noch nichtmal im Stande ist, eine derart 
primitive Aufgabe selbständig zu lösen.

Also: Setz Dich auf den Hosenboden und lern endlich mal was, Du 
Nichtsnutz!

Du darfst natürlich hier im Forum Fragen stellen, aber gleich nach einer 
fertigen Lösung zu fragen, das ist schon ein starkes Stück!

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Hier ein Beispiel.

Damit habe ich meinen Scheduler (für 8051,AVR) aufm PC getestet.


Peter

von Karl H. (kbuchegg)


Lesenswert?

Peter Dannegger wrote:
> Hier ein Beispiel.

Clever gemacht.
Die Idee in der Taskliste die Deltas zu speichern
ist gut.

von Martin (Gast)


Lesenswert?

Also was sind hier denn für leute unterwegs?
unser lehrer war unfähig uns diese beizubringen und wir haben alle in 
der klasse ein problem damit!!!
Ich bin abendschüler und schreibe prüfung in energietechnik und nicht in 
der datenverarbeitung. ihr kennt mich doch überhaupt nicht also lasst 
die dummen bermerkungen!!!! ich habe halt keinen bezug zu micocontroller 
und das werde ich bestimmt auch nicht in meinem weiteren berufsweg 
ausüben!!!

Ich habe nur eine einfache farge gestellt!!! das sind die deutschen alle 
nur auf sich gestellt!! nicht einmal helfen wollen!!!

die zeit ist halt zu knapp und ich würde mich freuen wenn mir einer so 
ein programm schicken könnte


lg der bald techniker in energietechnik

martin

von Carsten P. (papa_of_t)


Lesenswert?

lach Peter, Du bist noch grausamer, als die Poster über Dir.. :-)

von Peter D. (peda)


Lesenswert?

Carsten Pietsch wrote:
> lach Peter, Du bist noch grausamer, als die Poster über Dir.. :-)

Warum, das Programm ist doch voll funktionsfähig :-)

Nur noch getch durch nen Sekundentakt (Timerinterrupt) ersetzen und 
statt der Variablen red, green, yellow Portausgänge nehmen und schon 
läufts aufm 8051 (die printf könnte man auch noch raushauen).


Ist zwar nur ne einfache Fußgängerampel, aber vom Konzept her für 
beliebige Erweiterungen offen. Auch mehrere unabhängige Ampeln sind 
möglich.


Oder meinst Du, daß die Lehrer Schwierigkeiten haben werden, Strukturen, 
Arrays, Funktionspointer zu verstehen ?
Dann müssen sie halt ein C-Buch aufschlagen.


Peter

von Carsten P. (papa_of_t)


Lesenswert?

Ich meinte, der Martin wird - obwohl er bekommen hat was er wollte ("ein 
fertiges Programm") - mangels "Ahnung" wahrscheinlich damit nichts 
anfangen können .. Naja er hat 'ne Chance wenn er das Programm nicht 
erläutern muß sondern nur abgeben..

Aber so ist es, als ob Du einem nackten Mann in der Wüste ein Bierfaß 
ohne Zapfanlage gibst.. :-) Vielleicht nicht unmöglich - aber er hat auf 
jeden Fall lange dran zu kauen..

von Benedikt K. (benedikt)


Lesenswert?

Carsten Pietsch wrote:
> Aber so ist es, als ob Du einem nackten Mann in der Wüste ein Bierfaß
> ohne Zapfanlage gibst.. :-) Vielleicht nicht unmöglich - aber er hat auf
> jeden Fall lange dran zu kauen..

Den letzen Satz kann man sogar wörtlich nehmen, falls es keine Steine in 
der Wüste gibt...

von Gast (Gast)


Lesenswert?

Alle haben ein Problem mit der Aufgabe, also braucht man sich selbst 
damit auch nicht auseinander setzen. Toll.

Dann muss man sich halt mal hinsetzen und ein Buch zur Hand nehmen und 
zwar in dem Moment, in dem man merkt, dass der Lehrer es einem nihct bei 
bringen kann!

Achja, wenn du eine konkrete Frage gestellt hättest, wäre bestimmt noch 
mehr sinnvoller Input gekommen.

Gast.

von Karl H. (kbuchegg)


Lesenswert?

Martin wrote:
> unser lehrer war unfähig uns diese beizubringen und wir haben alle in
> der klasse ein problem damit!!!

Wenn wirklich alle ein Problem damit haben, dann geht man
zum Vorgesetzten des Lehrers und schildert ihm die Situation.

Aber meist beschränkt sich dieses 'alle' auf 'alle in meiner
Clique, die anstatt zuzuhören irgendwas anderes machen'.

> Ich bin abendschüler und schreibe prüfung in energietechnik und nicht in
> der datenverarbeitung. ihr kennt mich doch überhaupt nicht

Das ist richtig.
Alelrdings kennen wir ne Menge anderer Leute, bei denen das genau
so ist. Wenn ich dir unrecht tue, dann tuts mir leid und ich
entschuldige mich. Die Wahrscheinlichkeit spricht allerdings
deutlich gegen dich.

> die zeit ist halt zu knapp und ich würde mich freuen wenn mir einer so
> ein programm schicken könnte

Die Zeit ist knapp?
Mal überlegen:
Du brauchst eine Zeitbasis. Das wird wohl auf einen Timer
hinauslaufen, der in regelmässigen Abständen einen Interrupt
auslöst.

Du brauchst ein paar LED oder Lampen, die an den Ports
hängen und die Ampellichter darstellen

Was noch? Ach ja: Du brauchst eine Tabelle, in der steht, welche
Lampe in welchem Zeitschritt an oder aus sein soll.

Daraus folgt sofort: Du brauchst einen Zeitschrittzähler,
der vom Timer angetrieben vor sich hinzählt. Bei jedem
Timer Interrupt wird dieser Zähler erhöht und mit diesem
Zähler dann aus den Tabellen ausgelesen, wie die Lampen
sein müssen.

Und natürlich müssen die Tabellen noch gefüllt werden.
Das ist aber eher stupid und das rechne ich in die
Zeitabschätzungen nicht ein.

Das wars dann aber auch schon für eine Erstversion des Programmes.

Alles in allem:
* Für einen absoluten Anfänger
   Timer Interrupts: muss man sich einlesen und ein paar Versuche
                     machen
   Tabellen: Ein C Array ist schon erfunden
   Der Rest: eine eher einfache Steuerung

   Ich würde mal sagen: Wer mit C bei 0 anfängt, sollte das in
   etwa 2 Wochen hinkriegen

* Für jemanden der die Grundbegriffe in C (inkl. Arrays)
  so einigermassen intus hat:
  Sollte nicht länger als 2 Tage dauern. Eher deutlich darunter.
  Mehr so in der Gegend von 1 Tag

* Für jemanden der etwas Erfahrung hat (sprich seit mind. 3 oder
  4 Monaten auf dem Zielsystem programmiert)
  Das sollte in deutlich unter 2 Stunden machbar sein

* Für jemanden mit durchschnittlicher Erfahrung:
  Wenn er länger als 20 Minuten braucht -> zurück zu täglichen
  Übungen.

* Die Wizards,die die Steuerflags der Timer auswendig kennen:
  Nicht mehr als 5 Minuten


Niemand, auch ich nicht, erwartet von dir, dass du in der
5 oder 20 Minuten Fraktion bist. Aber die 'deutlich unter
2 Stunden' Fraktion sollte machbar sein. Und wenns abends
oder am Wochenende anstatt 2 Stunden mal 3 oder 4 Stunden
werden, ist das auch kein Beinbruch.
Du kannst nur gewinnen dabei: Eine Ampel ist wirklich simpel!
-> selber machen. Nur so lernt man.

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.