$timeout macht mich fertig

    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!

    • fredred schrieb:

      Z.B.DieDritte Revision Architektur mit B hat USART wake-up im „Power-down“-Zustand.
      Danke für den Hinweis, bringt mir aber nix.

      Gute Besserung!
      Raum für Notizen

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

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

      bzw verbessert nix, glaube ich.
      Richtig - Jetzt nicht mehr. Vorher hätte es viel Arbeit und Nerven gespart. Der Vorteil ist das jetzt auch wir das Verhalten kennen und nicht den gleichen "Leidensweg" betreten müssen. Dies ist eine der Stellen wo die Baskom Hilfe umfangreicher sein sollte.
      Seinerzeit wuste ich nichts vom Timeout und hatte mir einen selbst gebastelt:

      Quellcode

      1. For Tempw = 0 To 65000
      2. If Neu = 1 Then Exit For 'Datensatz empfangen
      3. Next
      4. If Neu = 1 Then
      5. ... 'Weiter arbeiten
      6. Else
      7. Tx_str = "Nak - keine Antwort" 'Fehler melden
      8. End If
    • Ich hab im Simulator auch mal etwas mit dem Timeout experimentiert.

      Nach Simulator kann man da folgenden Zusammenhang zwischen $Timeout-Wert und der realen Timeout-Dauer in Sekunden feststellen:

      t = TimeoutWert*14/fclock

      und umgestellt

      TimeoutWert = t * fclock / 14

      t : reale Timeout-Dauer in Sekunden
      TimeoutWert: mit $Timeout angegebener Wert
      fclock: MCU-Taktfrequenz in Herz

      $Timeout gibt die Schleifendurchläufe an. Ein Schleifendurchlauf benötigt 14 Takte.
      Hinzu kommt ein Overhead von 65 bzw. 68 Takten.

      Die reale Timeout-Dauer verlängert sich, wenn im Hintergrund Code ausgeführt wird wie Timer-Interrupts etc. während der Timeout läuft.