Hilfe Ampelschaltung mit Bascom ATtiny26

Gast
Ich verstehe Dein Problem nicht.
Kannst Du das ein wenig deutlicher beschreiben?

Ich gehe davon aus, dass Du weisst wie sich diese Aufgabenstellung 
anhört...
Persönliche Seite
Du hast glaube ich einen Denkfehler im Programm. Es ist 
verkehrstechnisch unklug, zuerst einen kompletten Zyklus von Ampel1 zu 
programmieren, bevor die Ampel2 das erste Mal angesprochen wird. In 
dieser Zeit hängen schon die ersten Autos aufeinander ;-)

Es hilft zuerst eine Tabelle zu machen, in der der Zeiten und Zustände 
der Ampellichter notiert sind

Zeit          A  B  C  D  E  F  G  H  A  wiederholen
Ampel1-rot    0  1  1  1  1  1  1  1
Ampel1-gelb   0  1  0  0  0  0  0  1
Ampel1-grün   1  0  0  0  0  0  0  0
Ampel2-rot    1  1  1  0  0  1  1  1
Ampel2-gelb   0  0  0  1  0  1  0  0
Ampel2-grün   0  0  0  0  1  0  0  0

Die einzelnen Phasen A,B,C... kann man dann den gewünschten 
Warte-/Fahrzeiten anpassen. Ich würde aus obigem Grund auch in jedem 
Zustand immer alle Ampellampen setzen/löschen.

Bei einem fortgeschrittenen Programm bietet sich sogar eine Schleife an, 
bei der die Steuerzeiten und die Zustände eines kompletten Ports aus 
zwei  Data Statements gelesen werden.

Bei einem noch fortgeschritteneren Programm würde man den Zeitgeber 
nicht durch wait Statements zwischen den Zuständen A,B,... 
programmieren, sondern einen Timerinterrupt als Zeitscheibenantrieb 
benutzen. Dann kann das Programm in den "Wartezeiten" noch andere Sachen 
machen z.B. Anzahl der Autos zählen oder MP3s für die Fussgänger 
abspielen ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.