Zeiterfassung und LCD-Anzeige bis 98Tage / 23Stunden / 59Minuten / 59Sekunden.

    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!

    • Eigentlich kann man sich die ganze Isr sparen. Ein Pin könnte Harwareseitig gesetzt/toggelt werden und bei höheren Prescaler hat die Main Zeit genug das Interrupt Flag zu bearbeiten. Bei kleinem gehts sowieso "in die Hose" dann muß eben eine ISR zählen.
      Das ganze Preload ist eher ein ungenauer Ressourcen fressender Notnagel.

      Mitch64 schrieb:

      Schwingt mit ca. 16,0016 Mhz
      Keinen Drehko zur Hand :?: , wenn schon Quarz dann sollte der genau so (un)genau arbeiten wie der Frequenzzähler :D

      HJH-MD schrieb:

      Die Pins von LCD's (D0-D3) liegen bei mir immer auf GND
      Dann hab ich wohl das einzige das das nicht verträgt. Es heißt "QAPASS" falls doch mal jemand ein Problem damit bekommt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pluto25 ()

    • Hallo Pluto25,
      die von mir verbauten Displays habe ich vor 3 Jahren in PRC gekauft. Laut der damaligen Doku des Händlers sind das genau die auf dem Bild.
      Verbaut sind HDD44780 Displaytreiber. Vielleicht gibt es da Unterschiede.
      Gruß Rudi
      Dateien
      Immer Glück haben ist fast wie können..
    • Da hab ich wohl die "zickige Schwester" erwischt :D
      IMG_20220508_082919.gif

      Es hatte mir Stunden gekostet es wieder zu "beleben". Die wollte ich anderen ersparen.
      Nun waren da mehrere Änderungen gleichzeitig als es dann nicht mehr funktionierte. SW, Versorgung und eben die pins auf Gnd. Natürlich das letzte das rückgängig gemacht wurde a_67_e210de67 (Muphys Law).
      Gewöhnlich arbeiten sie problemlos von 5-3,4V Darunter braucht es eine negative Vo :(
      Dabei sind die Pins immer unbelegt, da wollte ich das einmal besser machen a_28_2c02f089
    • Hallo Community,

      das eingangs vorgestellte Programm habe ich um die Funktion einer formatierten seriellen Ausgabe erweitert.
      Ich benutze dafür die Print spc() Anweisung um eine sauber lesbare Tabelle abzubilden.
      Die Anzahl Spc(x) ermittle ich mit einer einfachen If/then- und auch mit einer Select Case Abfrage.

      Auf einem MEGA8 läuft das mit ermittelten Indexen z.B. Print spc(xy); Variable einwandfrei.
      Auf einem Tiny4313 dagegen wird nur ein numerischer Index erlaubt z.B. Print spc(5); Variable.
      Kennt jemand den Grund, außer einer eventuell gewollten ersparten Rechenleistung?

      Ein Zweizeiler hier noch zum besseren Verständnis.

      Anzahl_spc: 'Fehler-Statusausgabe Anzahl Space in den Indizes
      I = 3 : If Loop_loss < 10 Then I = 4
      J = 6 : If Tage < 10 Then J = 7
      K = 6 : If Stunden < 10 Then K = 7
      L = 8 : If Minuten < 10 Then L = 9
      M = 9 : If Sekunden < 10 Then M = 10
      If Loop_loss > 99 Then I = 2

      Beide Zeilen laufen auf MEGA8, auf Tiny4313 nur die erste:
      Print Spc(1) ; "Fehler" ; Spc(3) ; "Tage" ; Spc(3) ; "Stunden" ; Spc(3) ; "Minuten" ; Spc(3) ; "Sekunden"
      Print Spc(i) ; Loop_loss ; Spc(j) ; Tage ; Spc(k) ; Stunden ; Spc(l) ; Minuten ; Spc(m) ; Sekunden

      Gruß Rudi
      Immer Glück haben ist fast wie können..
    • Hallo Mitch64,

      ich hatte veraäumt anzugeben, daß sich beide Versionen compilieren und flashen lassen.
      Nur in der Darstellung im Terminal tritt der Fehler so auf, wie der folgende Screenshot es zeigt:

      Ich erzeuge 2 Loop_loss Ereignisse im oberen Teil zu sehen und erwarte eigentlich die Darstellung in jeweils einer Zeile,
      formatiert durch die erzeugten Spc(x). Doch die Ausgabe folgt nur in der Darstellung der Werte, nicht wie erwartet mit spc(x) formatiert.

      Mit dem MEGA8 wird das so wie erwartet in jeweils einer Zeile formatiert durch spc(x) dargestellt.

      Gruß Rudi
      Dateien
      • 2022-10-02.JPG

        (69,58 kB, 26 mal heruntergeladen, zuletzt: )
      Immer Glück haben ist fast wie können..
    • Ich kann dir nicht wirklich folgen, wo jetzt dein Problem ist.

      Ich weiß Nicht was ein Loop_loss Ereignis ist, und wie diu das auslöst bzw. verarbeitest.

      Dann hätte ich jetzt Zahlenausgaben erwartet mit den Prints und kein Diagramm.

      Vielleicht solltest du ein kleines kompilierbares und lauffähiges Programm schreiben, dass den Fehler demonstriert.

      Dann kann man auch vernünfig nach einem Fehler suchen.
    • Mitch64 schrieb:



      Dann hätte ich jetzt Zahlenausgaben erwartet mit den Prints und kein Diagramm.
      ____________________________________
      das ist kein Diagramm, sondern die Darstellung des Fehlers mit TeraTem.
      Die beiden Pfeile habe ich in den Screenshot reingemalt, weil genau so die Ausgabe in der Terminalemulation erscheint (Bild mal vergrößern).
      Die 5 Werte werden bei einer Schleifen- Unterbrechung (Loop_loss) erzeugt.
      Die Pfeile sollen den Ablauf zeigen.
      Morgen stelle ich dazu ein ein kleines Prog. ein.


      Gruß Rudi
      Immer Glück haben ist fast wie können..
    • Hallo Pluto25,

      dein Tip war genau richtig. a_64_3a718cae
      Bei der Migration des Programms vom MEGA8 zum Tiny4313 ist mir ein Fehler unterlaufen, denn ich hatte die Routine zur Bildung der spc(x) nicht eingebunden. Dadurch war deren Wert immer =0 und das füllt der Interpreter mit einem Haufen Leerzeichen in der Printanweisung auf.
      In der Literatur ist das auch so beschrieben. Eine Gosub-Anweisung und die Sache rennt!

      Da das Programm nun soweit fertig ist wie ich es brauche, stelle ich es natürlich ein, sobald ich die "Zutaten" aufbereitet habe.
      Danke auch an Mitch64 für die Ratschläge.

      Gruß Rudi
      Dateien
      Immer Glück haben ist fast wie können..
    • Hallo Community,

      in der Fortsetzung hat das Programm noch 2 Features erhalten.
      Außerdem habe ich eine Version mit MEGA8 parallel getestet. Die Ergebnisse sind sekundengenau.

      Jede Unterbrechung wird nun nach Entstehung auf RS232 geloggt mit LfN; Tage; Std.; Min.; Sek.
      Die letzten 10 Werte werden Indiziert und sind auf RS232 über die Taste "Loop-Status" abrufbar.
      Die LfN wird fortlaufend bis 255 dargestellt. Siehe Bild oben im Post Nr.30.

      Programm und Schaltbild sind hier:

      Gruß Rudi
      Dateien
      Immer Glück haben ist fast wie können..