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.
> Was machst du in der Zwischenzeit ?
Da ich dieses Jahr Abschlussprüfung habe und dafür eine Homepage über
Halbleiterdioden erstellen muss, würde ich gerne an der Homepage
weiterarbeiten und für die Abschlussprüfung lernen.
> Dann hast Du ja noch ca. 15 Stunden Zeit. Wo ist das Prob?
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.
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...
> Immerhin hat er relativ offen zugegeben, dass wir für ihn seine> Hausaufgaben machen sollen. Und nicht nur angedeutet.
ja, dass stimmt und auch schon heute um 14:31......
@Klaus
Vielleicht weil die Leser das bei anderen ja auch so oft machen.
Und weil auch der Lehrer und die Mitschüler dauernd sagen, dass es hier
immer schnelle und kompetente Hilfe vor allem für Hausaufgaben gibt.
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.
> 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.
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.
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
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?
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.
> 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?
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.
> In jedem kleinen Problem steckt ein größeres Problem, das nur> darauf wartet zum ungünstigsten Zeitpunkt hervorzukommen und dir den Tag> zu versauen.
Du sagst es! ;)
@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.
>>wenn's nur an 1 oder 2 Stellen hakt, schafft er den>>Rest vielleicht noch irgendwie, mit einem kleinen Schubser?>Jetzt vwermutlich nicht mehr...
Wenn das tatsächlich alles stimmt, was er hier geschrieben hat, hat er
jetzt wieder ein Jahr Zeit bis zur nächsten Aufgabe...
Oliver
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?
Sesamstraßenprogrammierer schrieb:
> Aber wozu jetzt die anderen beschimpfen, wenn Du soeben selbst zugegeben> und sogar bewiesen hast, dass Du sie eigentlich gar nicht brauchtest?
so wurde es ein bisschen knapp mit der zeit...
Thomas L. schrieb:
> Hab es jetzt allein geschafft...
Herzlichen Glühstrumpf ;)
> ...und NEIN, die Lösung bekommt ihr nicht!!!WIR brauchen die ja auch gar nicht.
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?
> 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.
Und insofern kannst Du Dich nämlich schon auf dieses Forum verlassen,
nämlich darauf, dass die Leute hier Dir helfen, mehr aus Dir selbst
herauszuholen. Davon hast Du letztlich nämlich viel mehr.
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
@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]
STK500-Besitzer schrieb:
> Ja, nun hab ichs selber hinbekommen. Aber meine Lösung bekommt ihr> nicht! Da könnt ihr euch schön selber die Zähne dran ausbeißen!
Es geht doch nichts über einen kräftigen Lacher noch vor dem
Schlafengehen. Danke dafür.
> Was ist ein freine Schalter?
Erbsenzähler! Wohl ein Tippfehler (Buchstaben verdreht)
Der Unterhaltungswert dieses Threads liegt doch gar nicht in
Rechtschreibfehler, falls du das noch nicht gemerkt hast ...
Nee, das haben mir meine zwei verbliebenden Gehirnzellen wohl irgendwie
verpasst mitzuteilen...
Dass man hier aber auch immer angeschissen wird!
Ich fands lustig.