Projekt: Signalisierung eines freine Schalters

#1273653
Lesenswert?

Hallo, in der Schule haben wir den Auftrag erhalten für folgendes 
Problem ein C Programm mit dem AVR Studio zu erstellen und dieses muss 
morgen, den 25.05.2009 abgegeben werden.
Im anhang habe ich noch ein Bild des Mikrocontrollers mit allen nötigen 
Daten.
Das Programm sollte wie bei Lösungsmöglichkeit beschreiben, 
funktionieren.
Ich bedanke mich schon im voraus für die große Hilfe.

--------------------------------------------------

Problembeschreibung

In einem Schalterraum befinden sich drei Schalter die den 
Parteienverkehr abwickeln. Die Gäste warten im Warteraum und rücken beim 
Freiwerden eines Schalters nach. Dabei passiert es, dass Gäste den 
Schalterraum verlassen ohne dass jemand nachrückt.
Um dieses Problem zu lösen soll im Warteraum eine Anzeige angebracht 
werden, worauf der jeweils freie Schalter angezeigt wird.


Lösungsmöglichkeit

Die Bedienung erfolgt jeweils über einen Taster (S1, S2, S3) an den drei 
Schaltertischen.
Sind alle Schalter besetzt, erscheint auf der Anzeige "b" für besetzt.
Wird ein Schalter frei, betätigt der Schalterbeamte einen Taster und 
eine neben dem Taster angebrachte LED (L1, L2, L3) schaltet sich ein.
Wird ein Schalter besetzt, betätigt der Schalterbeamte erneut den Taster 
und die neben dem Taster angebrachte LED schaltet sich wieder aus.

Die anzeige im Warteraum gibt 1, 2 oder 3 je nach freiem Schalter aus. 
Sind mehrere Schalter frei, gibt die Anzeige nur eine Schalternummer 
aus:
 - 1, wenn Schalter 1, 2 und 3 frei sind,
 - 2, wenn Schalter 2 und 3 frei sind.
Wird ein Schalter besetzt, schaltet die Anzeige automatisch auf den 
nächsten freien Schalter um.
Als Anzeige soll eine Siebensegmentanzeige verwendet werden.

--------------------------------------------------

MfG

Thomas L.
Angehängte Dateien:
Gast #1273680
Lesenswert?

Zitat: Der Begriff Zeitmanagement ist genau genommen in sich 
widersprüchlich, da die Zeit ganz unabhängig davon vergeht, wie wir 
diese Zeit gestalten. Daher beschäftigt sich Zeitmanagement 
hauptsächlich mit Selbstmanagement, wobei es darum geht, Stress und 
Druck abzubauen. Durch eine konsequente Ausrichtung auf das Wesentliche 
und systematisches Vorgehen hat man letztlich weniger Arbeit.
(http://arbeitsblaetter.stangl-taller.at/LERNTECHNIK/Zeitplanung.shtml)

Kann man evtl. auch in dieser Art interpretieren... Naja viel Glück wird 
eine lange Nacht...
Gast #1273972
Lesenswert?

Vermutlich steht die genaue Auflösung sowieso schon irgendwo im Forum.

Ach, ich hätte auch gern ein paar Schüler, die mir bei der Entwicklung 
verschiedene Hilfsarbeiten abnehmen. Platinen bohren, günstigste 
Bezugsquellen für Teile suchen, in Datenblättern die benötigten Daten 
raussuchen, Programme testen, Teile in die neue Platinenversion 
einlöten, Fehler in meiner Software beheben, Platinenneurouting bei 
Änderungen, immer wieder benötigte Standardelemente runterprogrammieren, 
Kabelbäume verlegen, etc.

Insbesondere natürlich wenn's schnell gehen muss, vor drängenden 
Prototyp-Lieferterminen.

Das wär' doch mal was.
Gast #1273982
Lesenswert?

> Hab vielleicht vergessen zu sagen das ich nicht weis, welchen Code man
> brauch [...]

> Da ich dieses Jahr Abschlussprüfung habe [...]

Tja, dann schaffst du eben deinen Abschluss ganz zu recht nicht. Oder 
glaubst du etwa, die ausgebildeten Ingenieure, Techniker und 
Elektroniker in diesem Forum würden dir noch dabei helfen, den gleichen 
Abschluss zu erlangen wie sie, ohne dass du etwas kannst? Von solchen 
Leuten will man weder konkurrenziert werden, noch sich das Image seiner 
Ausbildung beschmutzen lassen.
Gast #1273985
Lesenswert?

Aber es ist schon eigenartig, dass wir hier sozusagen als kostenlose 
Hausaufgabenmaschine angesehen werden. Aufgabe mittags reinwerfen, danke 
mfg, abends Lösung abholen.

Man muss dem Original-Poster ja geradezu danken, das einmal so absolut 
klar ausgedrückt zu haben.

Irgendwas ist das wohl an mehreren Stellen ziemlich schiefgelaufen.
#1273990
Lesenswert?

Thomas L. schrieb:
> Hab vielleicht vergessen zu sagen das ich nicht weis, welchen Code man
> brauch damit man mit einem Taster eine LED ein und ausschalten kann, bei
> mir leuchtet sie nur solang man den Taster gedrückt hält.

Dann dürfte der Programmablaufplan, nachdem Du Deinen Code geschrieben 
hast, aber auch schon fehlerhaft sein.


Man kann natürlich versuchen, im Web fertige Codeschnipsel zu finden, 
die zu Deiner Aufgabe passen. In der Codesammlung könntest Du was 
finden, für 8 Tasten + 8 LEDs.


Sinnvoller finde ich allerdings, sich selber zu überlegen, was man 
machen muß (PAP) und dann danach den Code zu schreiben. Das hat den 
Vorteil, daß man auch versteht, was man macht. Damit vereinfacht sich 
erheblich die Fehlersuche, da ja Programme nie auf Anhieb funktionieren.

Selbst Profis nehmen sich bei umfangreichen Programmen erstmal Papier 
und Bleistift und malen nen PAP auf.


Peter
Gast #1273993
Lesenswert?

Aber vielleicht hat der OP ja doch schon mehr getan, als hier bisher 
sichtbar wird.

=> Nur leider wurde die schon vorhandene Software hier ja gar nicht 
gepostet. Wie kann man es da wissen? <=

Wer weiß, vielleicht muss gar nicht mehr soo viel getan werden, damit 
das noch klappt; wenn's nur an 1 oder 2 Stellen hakt, schafft er den 
Rest vielleicht noch irgendwie, mit einem kleinen Schubser?
#1274353
Lesenswert?

Grobi braucht selbst auch manchmal Hilfe schrieb:

> Wer weiß, vielleicht muss gar nicht mehr soo viel getan werden, damit
> das noch klappt; wenn's nur an 1 oder 2 Stellen hakt, schafft er den
> Rest vielleicht noch irgendwie, mit einem kleinen Schubser?

Na ja.
Wenns beim Umschalten einer Variablen von 0 auf 1 und zurück bei einem 
Tastendruck schon scheitert, wage ich gar nicht daran zu denken wo noch 
überall kleine Schubser notwendig sein werden.
#1274371
Lesenswert?

> Hab vielleicht vergessen zu sagen das ich nicht weis, welchen Code man
> brauch damit man mit einem Taster eine LED ein und ausschalten kann, bei
> mir leuchtet sie nur solang man den Taster gedrückt hält.

In einer Pseudo-Programmiersprache sähe ein Algorithmus so aus:

Annahme: Der Tastenstatus wird in einer Variablen gehalten 
(Beispielsweise  "letzer_Tastenstatus")



INIT:  # sowas findet ganz am Anfang eines Programms statt
Setze LETZTER_TASTENSTATUS zu NICHT_AKTIV

...

# weiter unten im Programm

lese aktuellen Tastenstatus aus Taste
falls Taste gedrückt, mache
   invertiere den LETZTEN_TASTENSTATUS
ende falls
# andernfalls mach nichts, wenn Taste nicht gedrückt ist


# und irgendwo an einer anderen Stelle wirst du wohl eine Ausgaberoutine 
haben, welche die LED in Anbhängigkeit vom Tastenstaus als "an" oder 
"aus" darstellt. Dazu brauchts du nur die Werte des LETZTEN_TASTENSTAUS 
ausgeben, mehr nicht.

War doch gar nicht so schwer, formulier den Rest auch mal so in 
Pseudo-Sprache, und dann übersetzt du das ganze in einer dir genehmen 
echten Programmiersprache oder Assembler


PS: Vielleicht hat er schon alles über Nacht fertig programmiert (da ja 
heute Abgabe ist) und möchte uns sein Programm zur Begutachtung 
vorlegen?
#1274381
Lesenswert?

Peter Dannegger schrieb:

> Selbst Profis nehmen sich bei umfangreichen Programmen erstmal Papier
> und Bleistift und malen nen PAP auf.

Das kann man nicht oft genug unterstreichen.

Profis arbeiten auch nach einem Stufenplan. Ist eine Aufgabe zu schwer 
(zu umfangreich), wird sie in Teile zerlegt, die einfacher sind. Die 
Kunst besteht darin, die Teile so zu gestalten, dass sie aufeinander 
aufbauen und jede für sich einzeln testbar sind.

Insofern hat der OP schon den richtigen Weg eingeschlagen. Erst mal muss 
eine Taste abgefragt werden können. Dann schaltet die Taste einen 
Zustand um. Dieser Zustand wird durch eine LED visualisiert. Dann soll 
eine 7-Seg was anzeigen. Dann soll sie die erforderlichen Zeichen 
anzeigen. Dann soll die Auswahllogik auswählen was angezeigt werden soll 
abhängig vom Led Status. Dann ... ist das Programm fertig. Jeder Schritt 
ist für sich einzeln testbar.

Profis scheuen auch nicht davor zurück, in abgegrenzten Testprogrammen 
einzelne Aspekte des Programms losgelöst vom eigentlichen Problem (und 
dem eigentlichen Programm) zu untersuchen und dabei zu lernen, wie Dinge 
funktionieren, was nicht funktioniert, was sich bewährt etc. Das geht 
Hand in Hand mit der Thematik "Fokusieren auf ein Teilproblem".

Profis hängen auch nicht dem Traum nach, dass es möglich ist, ein 
Programm komplett auf dem Papier zu schrieben und das das dann auch noch 
auf Anhieb fehlerfrei funktioniert.

Und vor allen Dingen: Profis fangen rechtzeitig an! Sie haben längst 
gelernt, dass in jedem Projekt irgendwo ein Knackpunkt steckt, der 
mehr Zeit, viel mehr Zeit, erfordert als man im Vorfeld gedacht hat. 
Merke: In jedem kleinen Problem steckt ein größeres Problem, das nur 
darauf wartet zum ungünstigsten Zeitpunkt hervorzukommen und dir den Tag 
zu versauen.
Gast #1274389
Lesenswert?

@Franz (Gast)

Du hast recht, daher ist es ja auch so schön, dass Du Dich für ihn heute 
Nacht so richtig ins Zeug geschmissen und ihm das komplett und voll 
kompatibel mit seiner Hardware programmiert und auch heute morgen noch 
so gute Tipps gegeben hast. Danke, tausendfach danke, Du hast das ganze 
Forum entlastet.
Gast #1275293
Lesenswert?

Na bitte, geht doch.

Herzlichen Glückwunsch! Freut mich sehr zu hören!!!

Dass Du es selbst geschafft hast, ist unendlich viel mehr wert als jede 
Hilfe, die Du hättest kriegen können.

Aber wozu jetzt die anderen beschimpfen, wenn Du soeben selbst zugegeben 
und sogar bewiesen hast, dass Du sie eigentlich gar nicht brauchtest?
#1275336
Lesenswert?

Thomas L. schrieb:
> Hab es jetzt allein geschafft...
> ...wusste ja das man sich auf solche µC-Freakz nicht verlassen kann...
>
> ...und NEIN, die Lösung bekommt ihr nicht!!!

Bei deiner Einstellung hättest du es verdient, dass dein Lehrer die 
Aufgabenstellung bei Google eingibt, dadurch diesen Thread hier liest 
und deine unverfrohrene Faulheit tadelt.
Und zu deiner Lösung: Kennst du Wayne?
Gast #1275341
Lesenswert?

> so wurde es ein bisschen knapp mit der zeit...

Schon klar, aber es ist ja auch Deine Ausbildung. Warum soll ein anderer 
Deine Aufgaben erledigen? Wir sitzen ja auch nicht alle bloß untätig 
hier herum, schon gar nicht an so schönen lauen Frühlingstagen.

Hast Du denn nicht das Gefühl, dass Du echt was geschafft und gelernt 
hast?
Freue Dich lieber über DEINE LEISTUNG. Diese Freude steht Dir jetzt 
ehrlich zu.

Dieses Genörgle und Gemurre, das ist nicht der schönste Charakterzug 
(wenn auch in so einer Situation leider verbreitet -- so einen Fehler 
kann man aber in sich überwinden).
Aber ohne eigene Anstrengung geht's nun mal nicht wirklich im Leben, nur 
damit kannst Du viel erreichen. Ohne sie gibt's bestenfalls nur 
unterstes Mittelmaß, wenn überhaupt.
#1275362
Lesenswert?

Lorenz .. schrieb:
> Und zu deiner Lösung: Kennst du Wayne?


Wayne ist der Vorname folgender männlicher Personen:

    * Wayne Allard (* 1943), US-amerikanischer Senator
    * Wayne Bergeron, US-amerikanischer Jazztrompeter
    * Wayne Besen, US-amerikanischer Rechtsanwalt
    * Wayne Booth (1921–2005), US-amerikanischer Professor für Englische 
Literatur und Literaturwissenschaftler
    * Wayne Brady (* 1972), US-amerikanischer Comedian, Synchronsprecher 
und Sänger
    * Wayne Bridge (* 1980), englischer Fußballspieler
    * Wayne Carpendale (* 1977), deutscher Schauspieler
    * Mark Wayne Clark (1896–1984), US-amerikanischer General
    * Wayne Cogswell (* 1937), US-amerikanischer Rock'n'Roll-Musiker und 
Songschreiber
    * Wayne Coleman (* 1943), US-amerikanischer Profiwrestler
    * Don Wayne Fawcett (* 1917), US-amerikanischer Anatom und 
Zellbiologe
    * Wayne Ferreira (* 1971), südafrikanischer Tennisprofi
    * Wayne Fontana (* 1945), britischer Sänger
    * Wayne Frost (1963−2008), US-amerikanischer Breakdancer
    * John Wayne Gacy (1942–1994), US-amerikanischer Serienmörder
    * Madonna Wayne Gacy (* 1964), Keyboarder, siehe Marilyn Manson
    * Wayne Gardner (* 1959), australischer Motorradrennfahrer
    * Wayne Gould (* 1945), Verbreiter des Sudokus in Europa
    * Wayne Gretzky (* 1961), kanadischer Eishockeyspieler
    * Wayne Hale (* 1954), US-amerikanischer Leiter des 
Space-Shuttle-Programms der NASA
    * Wayne Johnston (* 1958), kanadischer Schriftsteller
    * Wayne Knight (* 1955), US-amerikanischer Schauspieler
    * Wayne Krantz, US-amerikanischer Gitarrist
    * Wayne Lo (* 1974), US-amerikanischer Amokläufer
    * Wayne Mardle (* 1973), englischer Dartspieler
    * Wayne McLaren (1940–1992), US-amerikanisches Fotomodell
    * Wayne Morse (1900–1974), US-amerikanischer Politiker
    * Wayne Newton (* 1942), US-amerikanischer Entertainer
    * Wayne D. Overholser (1906–1996), US-amerikanischer Westernautor
    * Richard Wayne Penniman (* 1932), US-amerikanischer Musiker und 
Schauspieler
    * Wayne Primeau (* 1976), kanadischer Eishockeyspieler
    * Wayne Rainey (* 1960), US-amerikanischer Motorradrennfahrer
    * Wayne Rogers (* 1933), US-amerikanischer Schauspieler
    * Wayne Rooney (* 1985), englischer Fußballspieler
    * Kenny Wayne Shepherd (* 1977), US-amerikanischer Bluesrock-Musiker
    * Wayne Shorter (* 1933), US-amerikanischer Jazz-Saxophonist und 
-komponist
    * Wayne Sievers (* 1957), australischer Politiker und Polizist
    * Wayne Static (* 1965), US-amerikanischer Musiker und Frontman von 
Static-X
    * Wayne Thomas (Eishockeyspieler) (* 1947), kanadischer 
Eishockeyspieler, -trainer und -funktionär
    * Wayne Thomas (Fußballspieler) (* 1958), walisischer Fußballspieler
    * Ronald Wayne Van Zant (1948–1977), US-amerikanischer Musiker
    * Wayne Wang (* 1949), US-amerikanischer Regisseur
    * Wayne Weiler (1934–2005), US-amerikanischer Rennfahrer
    * Wayne Wells (* 1946), US-amerikanischer Ringer
    * Wayne Williams (* 1933), US-amerikanischer Rockabilly-Musiker


Wayne ist der Familienname folgender Personen:

    * Alvis Wayne (* 1937), US-amerikanischer Rockabilly-Sänger
    * Anthony Wayne (1745–1796), US-amerikanischer General
    * Carl Wayne (1943–2004), britischer Sänger und Schauspieler
    * Chuck Wayne (1923–1997), US-amerikanischer Jazz-Gitarrist
    * Frances Wayne (1919–1978), US-amerikanische Jazz-Sängerin
    * James Moore Wayne (1790–1867), US-amerikanischer Jurist und 
Richter
    * Jan Wayne (* 1974), deutscher DJ und Musikproduzent
    * John Wayne (1907–1979), US-amerikanischer Schauspieler
    * Lil’ Wayne (* 1982), eigentlich Dwayne Michael Carter J.R., 
US-amerikanischer Rapper
    * Patrick Wayne (* 1939), US-amerikanischer Schauspieler
    * Ron Wayne (* 1935), US-amerikanischer IT-Unternehmer
    * Sarah Wayne Callies (* 1977), US-amerikanische Schauspielerin
    * Christina Wayne, US-amerikanische Produzentin, Drehbuchautorin und 
Filmregisseurin


Fiktiv

    * Bruce Wayne ist die wahre Identität von Batman


_Wayne ist der Name folgender Orte:_

    * Wayne County
    * Fort Wayne, zweitgrößte Stadt im US-Bundesstaat Indiana
    * Wayne (Maine)
    * Wayne (Michigan), Stadt in Wayne County in Michigan
    * Wayne (Nebraska)
    * Wayne (New Jersey), Township im Passaic County in New Jersey
    * Wayne (New York)
    * Wayne (Ohio)
    * Wayne (Oklahoma)
    * Wayne (Pennsylvania)
    * Wayne (West Virginia)
    * Wayne (Wisconsin)


Wayne bezeichnet außerdem:

    * Detroit Metropolitan Wayne County Airport, internationaler 
Flughafen der Stadt Detroit
    * Fort Wayne Pistons, US-amerikanisches Basketballteam aus Detroit
    * Wayne (Netzjargon), ein umgangssprachlicher, scherzhafter Ausdruck 
im Netzjargon
    * Wayne State University, staatliche Universität in Detroit im 
US-Bundesstaat Michigan

Siehe auch

    * Wayne Township
Gast #1275395
Lesenswert?

@j1mb0 Thomas L.

Weil du ja so schön aus Wikipedia kopieren kannst:

Arschloch steht umgangssprachlich für den Anus. Das Wort wird 
hauptsächlich als Schimpfwort gebraucht. Um die Wirkung abzumildern, 
werden in der Umgangssprache auch Euphemismen wie Armleuchter 
eingesetzt.

Etymologie

Der Wortbestandteil Arsch findet sich in allen germanischen Sprachen 
(alts., altn., schwed., ahd, mhd. und frnhd. ars; altenglisch ærs, 
neuenglisch arse, vor allem im Amerikanischen Englisch auch ass; 
Niederländisch aars; niederdeutsch ors, auch nors, mors) und erlaubt die 
Rekonstruktion der gemeingermanischen Wurzel *ars-oz. Wahrscheinlich ist 
eine Verwandtschaft mit gr. ορρος orros „Schwanz“, das ebenfalls als 
Kraftausdruck für das Gesäß gebraucht und daher in gehobener Sprache 
vermieden wurde. Zu einer möglichen gemeinsamen indogermanischen Wurzel 
*ors werden auch air. err „Schwanz“ und hethitisch arrash „Gesäß“ 
gerechnet.

Der Begriff Loch ist althochdeutschen Ursprungs und bedeutet Öffnung. 
Die Kombination dürfte frühmittelalterlich sein, da sie inhaltsgleich 
sowohl im Englischen als auch im Deutschen vorkommt. Im Althochdeutschen 
ist für den Anus dagegen primär der Ausdruck Darm, Derm zu finden, der 
später auf das Intestinum übertragen wurde.

Verwendung in der Literatur

Durch Charles Bukowski bekam der Ausdruck Arschloch auch seinen Platz in 
der Weltliteratur. In seinem Werk Der Mann mit der Ledertasche beginnt 
er einen Absatz mit: „Was hast du denn gegen Arschlöcher?“[1] und auch 
sonst setzt er das Wort nicht sparsam ein.

Roland Topor schrieb bereits 1975 Mémoires d'un vieux con, deutsch: 
Memoiren eines alten Arschlochs[2] – eine fiktive Autobiografie. Kleines 
Arschloch von Walter Moers ist eine bekannte Comicfigur. Ein sehr 
bekanntes Beispiel für die Nutzung in der Musik ist das Lied Schrei nach 
Liebe von den Ärzten, in welchem es einem fiktiven Rechtsradikalen quasi 
ins Gesicht geschrien wird, und der Comedian Michael Mittermeier benennt 
ein bekanntes Lied seines Repertoires mit dem Titel Arschloch-Kind.

Nichtverbale Verwendung

Gebräuchlich ist beispielsweise von Autofahrern an andere 
Verkehrsteilnehmer das Zeigen eines von Daumen und Zeige- oder 
Ringfinger gebildeten Kreises, der das Loch symbolisiert.

Strafbare Äußerung

Die Benutzung des Schimpfwortes Arschloch kann strafrechtlich eine 
Beleidigung darstellen.

Zitat

    * „Mit Verlaub, Herr Präsident, Sie sind ein Arschloch!“ (Joschka 
Fischer: Der Abgeordnete Fischer am 18. Oktober 1984 zum damaligen 
Bundestagsvizepräsidenten Richard Stücklen)[3]
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.