Countdown Programm das mehrere Tage rückwärtszählt

    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!

    • Countdown Programm das mehrere Tage rückwärtszählt

      Guten Abend liebes Bascomforum ich bin Tim und habe mir vor einiger Zeit ein Lernpaket von FRANZIS gekauft da mich das Thema Mikrocontroller sehr fasziniert hat, hab mich auch schon ganz gut eingearbeitet und schon einiges gelernt.
      Jetzt bin Ich allerdings an meine Grenzen gestoßen und mir brennt ganz schon der Kopf a_27_b277ca12

      Zu meinem Problemm bzw, Vorhaben:
      Ich möchte qwasi ein Countdown "Uhr" bauen die Tage bzw. Wochen rückwärts Zählt. Das ganze soll mit 10LEDS angezeigt werden, Sprich bei 4 Wochen starten dann auf 3Wochen , 2Wochen und die letzte Woche in Tagen anzeigen. Also eine LED pro Tag bzw. Woche.

      Zusätzlich möchte Ich mit einem Taster die Zeit schrittweise verkürzen können.

      Als kleines Extra sollte das ganze in 4facher ausführung sein, klappt das mit einem Mega8 und mittels Schieberegister :?:

      Wie würdet Ihr an so ein Projekt ran gehen :?:

      Bin euch für eure Tipps schon im vorraus dankbar, gruß Tim.
    • Ich würde eine Long Variable mit den gewünschten Anzahl Sekunden befüllen und im Interrupt, der jede Sekunde kommt, immer eine Sekunde abziehen.
      Im Hauptprogramm wird dann mittels der Datums- und Zeitfunktionen von Bascom das ganze als Datum und Uhrzeit angezeigt, wobei vom Datum nur die Tage genommen werden.

      Als Anfang kannst du einen Timer programmieren, der genau jede Sekunde kommt und dort eine Variable inkrementieren und im hauptprogramm anzeigen lassen.

      Gruß, Michael
    • Ein Mega8 ist dafür völlig ausreichend. Es geht auch sehr gut mit Schieberegistern.
      Da wir nicht wissen wie weit dein Kenntnisstand solltest du "klein" anfangen. Also Step by Step
      Als erstes solltest du erstmal die Uhr realisieren und wenn sie läuft dein Programm immer um eine weitere Funktion erweitern.

      Eine Uhr die auch rückwärts zählt ist im Grunde nicht schwer. Dafür bietet Bascom schon "vorgefertigte" Routinen.
      Hast du schon eine "normale" Uhr programmiert? Wenn ja, lässt sich dann der Countdown leicht einbinden.
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • Pluto25 schrieb:

      Auch den Timer könnte man durch wait sparen. Auch wenn das hier verpönt wird
      Hallo Pluto25, das stimmt so nicht. Wenn es nichts zeitkritisches gibt, spricht nichts dagegen mit wait zu arbeiten. Bei der Anwendung in diesem Thread ist das durchaus leicht machbar.

      Tim schrieb:

      Als kleines Extra sollte das ganze in 4facher ausführung sein, klappt das mit einem Mega8 und mittels Schieberegister
      Verstehe ich das richtig? 4 x 10 LED´s? Dann würde es sich anbieten das erst mal zu vierteln (1 x 10 LED´s). Wenn das läuft könnte man doch einen Timer verwenden und die 40 LED´s damit multiplexen. Spart eine Menge Hardware, denn das kann der Mega 8 schließlich alleine.
      Wenn das die Lösung ist, möchte ich mein Problem wieder haben.
    • @Tim schau dir mal die Prozedur 'select case' an. Wenn du deinen Zeitraum sekundenmäßig an legst und jede Sekunde eins ab ziehst, kannst du mit select case Zeiträume festlegen, wann eine Led leuchtet.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • @Tim
      Noch mal zum Verständnis, du hast 3 LEDs, die jeweils eine Woche darstellen. leuchtet die entsprechende LED
      zu Beginn der Woche, oder erst wenn die Woche vorbei ist? bleibt sie dann den Rest der Zeit an ?
      Was ist mit den Tagesleds, leuchten die auch in jeder Woche, oder nur in der letzten Woche ?

      Zum Thema Zeit,
      wenn du nicht mit Sekunden rechnen willst, du kannst den 16-Bit Timer auch minütlich zähen lassen. Wenn du dann
      in der Timer-ISR eine Variable bis 60 zählen lässt, hast du schon eine Stunde "erschlagen". Das geht aber nur mit
      Crystal=1000000 !

      Beispiel der Timereinstellung

      BASCOM-Quellcode

      1. Config Timer1 = Timer , Prescale = 1024
      2. Enable Timer1
      3. On Timer1 Minut
      4. Config Porta.7 = Output 'OC0B (PWM)
      5. Const T1_laden = 6942 '58594 = ca. 1min
      6. Enable Interrupts

      und die ISR


      BASCOM-Quellcode

      1. Minut:
      2. Timer1 = T1_laden
      3. Incr Mz
      4. Return

      Die Variable mz musst du dann im Hauptprogramm bearbeiten.
      4 Wochen in Minuten sind 40320 . das passt bequem in eine Wortvariable.
      Dann brauchst du nur noch, mit IF Then oder Case Select bestimmen, wann welche Led leuchten soll.

      Detlef
      Leichtsinn ist kein Mut, Vorsicht keine Feigheit.
    • Hallo Leute, nochmal danke für die Tipps werde diese die Tage mal auspropieren und bisschen rum tüfteln.
      Nochmal zu meinem vorhaben der Countdown soll eine Zeitspanne von einem Monat haben. Die ersten drei Wochen soll nur die Woche angezeigt werden und die letzte Woche in Tagen zurück zählen. Aber Ihr habt recht wenn z.B. 2 Wochen angezeigt wird weis ich ja nicht ob es der Anfang der Woche ist oder das Ende, vieleicht könnte Ich es ja so machen das 2 Wochen Angezeigt werden und dann zusätzlich eine LED von der Tagesanzeige leuchtet.

      Das mit dem 4 Fach hab ich so gemeint das jeder für sich Zählt sprich das die eine Anzeige noch bei 3 Wochen steht und eine andere schon bei 2Tagen z.B.
      Da Ich mit einem Taster pro Countdown die zeit beliebig reduzieren möchte.

      Wegen der Hardware, bei 40 LEDs und 4 Eingängen reichen mir die 23 I/O vom Mega8 doch nicht oder gibt es da ein Trick?
    • Tim schrieb:

      Wegen der Hardware, bei 40 LEDs und 4 Eingängen reichen mir die 23 I/O vom Mega8 doch nicht oder gibt es da ein Trick?
      doch, da gibt es schon Möglichkeiten.
      Entweder, du multiplext die Anzeigen. Oder du kannst auch mit BCD zu 8 Dekodern (zB. LS138 oder ähnliche) arbeiten. Da brauchst du z.B
      für die Wochentage (4 x) nur 7 Portpins. Nur zwei der Möglichkeiten.
      Aber das ist alles noch Stochern im Nebel. Zeig mal einen Prinzipschaltplan oder dein Programm, soweit schon vorhanden.
      Ich denke, mit etwas mehr Infos kann dir auch besser geholfen werden.

      Detlef
      Leichtsinn ist kein Mut, Vorsicht keine Feigheit.
    • Oder @Tim, du verwendest die Ws2812 Leds, dann brauchst du für alle Leds nur einen pin. Schau dich mal im Lexikon unter Rainbow.lib um, da steht genaueres.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      verwendest die Ws2812 Leds
      vielleicht solche stripes
      ebay.de/itm/5x-WS2812-8-Kanal-…ac82eb:g:NUIAAOSwRWRbMWIz
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • Das mit dem Rainbow hört sich ja mal spannend an das muss Ich auf jedenfall mal ausprobieren.

      Momentan hab ich nur so ne Experimentier Platine von Franzis, mein Programm hält sich auch noch in grenzen werde das ganze jetzt erst mal in einfacher Form mit einem Timer ausprobierne.
      Bin jetzt aber erstmal übers Wochenende weg, werde mich also nächste Woche mit meinen problemen wieder melden a_64_3a718cae