Hilfe Stufentimer

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Hilfe Stufentimer

      Hallo, da ich ein "Sonntagsprogrammierer" bin habe ich ein Problem und bitte um Hilfe.
      Es geht um ein Timerprogramm, geänderter Code aus dem Buch von Stefan Hoffmann. In der
      jetzigen Form habe ich 4 mittels Taster wählbare Zeiten.
      Ich möchte den Timer um eine Stufe, d.h. mittels zweier Taster (Decr / Incr)
      einen Zeitwert bis 300 Sekunden in 10 Sekunden Schritten, erweitern. Zur optischen
      Anzeige sollte eine 7-Segment Anzeige (3 Stellen) dienen. Da trennen sich nun die Geister bzw.
      mein klägliches Wissen. Kann mir da ein User helfen?
      Dateien
    • Hi Fanpost2010,

      da bräuchtest Du ein völlig neues Programm. Alleine der Wunsch nach einer 3-stelligen (LED?) 7-Segment Anzeige bedarf schon einiger Vorüberlegungen. Eine "Direktverdrahtung" (über entsprechende LED Treiber, 3*7=21) würde nahezu alle Pins eines Atmega 8 benötigen. Ein Multiplexing der Anzeige würde die Anzahl der benötigten Pins reduzieren (3+7=10). Noch sparsamer wären fertige 7-Segment-Bausteine, die seriell, per I2C oder was auch immer angesteuert werden. Da muss aber auch das entsprechende Protokoll zunächst als Code vorhanden sein (oder geschrieben werden).
      Oder handelt es sich eher um ein LCD-Display?

      Welche 7-Segment Anzeigen möchtest Du verbauen?
      Was muss das Programm am Ende wirklich können (soll es wirklich am Ende auch noch die einzelnen LEDs wie im von Dir geposteten Code ansteuern)?
    • Hallo,
      eine konkrete Antwort habe ich auch nicht, weil das "Stefan Hoffmann Programm" sehr mühsam zu verstehen ist, wenn man sich nicht stundenlang vertiefen will. Ich hänge mal ein altes Programm von mir an, bei dem ich hoffentlich verständliche Kommentare angefügt habe. Es ist allerdings aus Bascom8051-Zeiten, aber leicht zu übertragen. Die Zeit wird aber nur in Sekunden-Schritten eingestellt (hoch und runter). Vielleicht hilft es für eine eigene Lösung.
      michl
      Dateien
      • kurzzeit2.BAS

        (3,54 kB, 13 mal heruntergeladen, zuletzt: )
    • Ich stimme @R2D2 Bastler zu.

      Mache dir mal einen Plan, was das Ding genau können und an Features haben soll.
      Und dann mach dir auch Gedanken, wie die Bedienung des Timers von Statten gehen soll.

      Was passiert nach dem Einschalten, welche Anzeige soll da sein. Wie viele Tasten willst du für die Bedienung haben und wie soll der Timer darauf reagieren.
      Je genauer du das planst umso besser fürs Programm.

      Weil man kann nichts programmieren, wenn man nicht weis, wie es funktionieren soll.

      Deinen Code würde ich auch verwerfen. Die Stufen kannst du so auch vergessen, da sie im 10 Sekunden Abstand sind.
      Man kann auch einfach auf die aktuelle Timeout-Zeit beim Tastendruck 10s aufaddieren.

      Die Konstanten und die Select-Case Anweisungen sind daher recht überflüssig.
    • Ich habe die Funktionen des Timers nochmals "durchdacht". 300Sekunden werden nicht mehr benötigt. Es soll mit einem Taster ein Menü
      mit 6 Funktionen gewählt werden können. 5, 10,15 und 30 Sekunden (Schnellwahl) Als 5. Menüpunkt mittels 2 Tasten (+ -) eine variable
      Einstellung im 5 Sekunden Raster bis 95 Sekunden. Der letzte 6. Menüpunkt schaltet den Timer ab. Alle eingestellten Werte sollen mittels
      2 LED 7-Segment Anzeigen (im Multiplex-Betrieb) dargestellt werden. Eine LED soll als Betriebsanzeige im Sekundentakt blinken.
      Nachdem die Zeitwerte eingestellt sind, soll per weiterem Taster der Timer gestartet werden können. Wenn der Timer gestartet ist soll
      eine LED den den Zustand des Ausganges anzeigen. Im Enschaltaugenblick soll alles au "0" stehen.
    • Fanpost2010 schrieb:

      Es soll mit einem Taster ein Menü
      mit 6 Funktionen gewählt werden können
      Wie wird das Menü angezeigt? Auf 7-Segment-Anzeigen?

      Wie viele Tasten und welche Taste hat welche Funktion, oder sollen die Tasten anhängig von der Eingabe unterschiedliche Funktionen haben? Also T1 z.B. zu einem Zeitpunkt Minuten + und zu einem anderen Zeitpunkt Menü aufruf?
    • - Ein Taster für das 6 Punkte Menü
      - Zwei Taster (plus/minus) für die variable Zeiteinstellung
      - Ein Taster für den Start des Timers
      - Eine LED blinkend für die Betriebsanzeige
      - Eine LED für den Schaltzustand des Ausganges

      Anzeige der gewählten Zeiten, Menü und variable Zeiten, auf 2 7-Segment LED-Anzeigen
    • Also ich versuche mir das gerade mal vorzustellen.
      Du hast 4 Taster.
      1. Taste Menü
      2. Taste Start, Startet den Timer
      3. Taste Up und Taste Down zum Einstellen der Zeit, wenn Menü 5 eingeblendet wird.
      In meiner Vorstellung:
      Also wenn man das ding einschaltet, Timer läuft nicht, und Menü ist nicht aktiviert. Was zeigt das ding dann an? 2 x Minus? (--)
      Wenn du dann Taste das 1. max Menü drückst, kommt die 5s auf der Anzeige, nochmal die 10s, dann 15 usw?
      Ist die Zeit dabei drückt man einfach auf Start und der Timer läuft. OK.

      Drücke ich nochmal Menü, dann kommen die 30s, nochmal Menü dann kann man die Zeit im 5s Raster einstellen mit Up/Down.
      Woran erkennt man das, das man das einstellen kann? Blinkt die Anzeige? Oder ein Punkt in der Anzeige?

      Angenommen, die Zeit wäre ketzt mit Up/Down eingestellt und Wollte starten, dann Start-Taste?

      Und wenn man doch den Timer nicht starten Will, muss man nochmal Menü drücken. Wie erkenne in den deltzen Menü-Punkt? Was wird angezeigt?
      Und an dieser Stelle Start, dann wird der Timer nicht gestartet und das Menüverlassen?

      Vielleicht liege ich mit meiner Vorstellung ja daneben. Aber deine Beschreibung ist einfach nicht präzise.

      Von der Bedienung könnte man es aber auch anders machen. 4 Tasten sind ja schon mal komfortabel!

      Ich würde das etwa so machen:
      Eine Taste Menü, eine Taste OK und die beiden letzten für Up/Down.
      Die Anzeige kann man ja beibehalten.
      Ist nichts ausgewählt, ist die Anzeige leer oder man sieht nur einen Punkt, damit man weis, der Timer ist an.
      Mit Taste Menü würde ich ins Menü gehen. D.h. es wird 5 Sekunden gewählt bzw. angezeigt. Mit Up/Down wählt man die anderen Werte, hat man den Wert, wird mit OK der Timer gestartet. Abbruch wäre einfach wieder die Menü-Taste. Dann leichtet wieder der eine Punkt.

      Bei der Werte-Auswahl gehts nach oben von 5 nach 10, eben im 5s Raster und mit Down runter, außer 0s, das macht wenig sinn. Dafür kann man auch Menü-Taste nehmen um die Einstellung zu beenden.

      Die Anzeige läuft im Hintergrund über den Timer, der die Anzeige multiplext. Die LED's separat an 2 pins.

      Sollte kein großer Akt sein.
    • Leider kann ich da nichts draus machen. Ich habe um Hilfe gebeten. Ich kenne mich z.B. mit Multiplex und Schieberegistern,
      was die Anzeige per LED 7-Segment Anzeige und die Übergabe der Werte an so eine Anzeige betrifft, überhaupt nicht aus.
      Weiterhin bin ich schon 72 und nur ein „Gelegenheitsprogrammierer“, mein letztes Objekt ist schon sehr lange her.
    • Das mit Deiner vorhandenen Hardware zu machen ist etwas verzwickt, weil Du sehr viel selbst machen musst.
      Einfacher ist es, wenn Du Dir ein preiswertes Modul kaufst, auf dem vier Siebensegmentanzeigen und eine I2C-Steuerelektronik verbaut sind. Kostest nicht soo viel, aber dann hast Du fast keine Verdrahtung (nur zwei Steuerleitungen plus Spannungsversorgung) und die Ansteuerung vom BASCOM aus ist übersichtlich.
    • Möglich ist alles. Die frage was es werden soll? Ich denke es sind zwei Baustellen. Einmal der Code für die Taster und der für die Anzeige. Der Mega hat Pins genug um die Anzeigen selbst zu versorgen (Falls sie nicht dem Sonnenlicht entgegen strahlen müssen). Vielleicht ein Schritt nach dem Anderen. Ich würde gar nicht viel Pläne machen sondern mit dem verfügbaren loslegen. Der Compiler meldet unmögliches und Schreibfehler und der Simulator zeigt ob der Mega das richtig verstehen würde.Kommt dann totaler Müll raus kann man schön Schritt für Schritt nachgehen wo es schief läuft.

      Fanpost2010 schrieb:

      Ja, die Anzeige soll auf Entfernung lesbar sein
      Auf welche Entfernung? Die 13mm sind nicht sehr groß.

      Fanpost2010 schrieb:

      soviel Verdrahtung ist das auch nicht
      Die 18 Pins der 7-Seg und 2 besser 8 Widerstände wären mir ein Greuel :D