- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 31 bis 40 von 40

Thema: Taster mit Kondensator entprellen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #40
    HaWe
    Gast
    mit UART lese ich laufend eingehende Bytes ein und kopiere sie in verschiedene Zwischenpuffer zur Weiterverarbeitung (strtok etc.), über I2C werden laufend verschiedenste Sensoren nacheinander ausgelesen und die Werte dann verrechnet, dann werden neue Werte gesammelt und über UART arrays wieder zurückgeschickt, über SPI wird das 480x320 TFT angesteuert, was schon recht lang dauert, dann seine touchscreen und touchbutton events erfasst und Hardwarepuffer beschrieben/gelöscht.
    Das alles dauert schon seine Zeit.
    Damit dann das Bild nicht ruckelt, weil zwischendurch ein paarmal auf ein ButtonUp oder ein Debounce gewartetet werden muss, muss man zumindest hier auf delays verzichten.
    Außerdem sind nicht alle Pins, an denen ein Button angeschlossen sein kann, Interrupt-fähig, dann beträfen Interrupts ja auch nur einzelne Instanzen, solange sie aktuell existieren, und sie müssten auf nur 1 Zustand der Statemachine begrenzt werden (z.B. Level 3) und bei anderen Zuständen (1,2,4,5,6,...) zwingend inaktiv bleiben - aus meiner Sicht also nicht machbar.

    Mit pthread auf dem Pi mache ich das anders:
    1 langsamer low priority Thread für HDMI TFT Ausgabe, die nach und nach mit 20Hz alles ausgibt, bis es vollständig ist, dann auf 50ms (nonblocking) delay, und dann sofort wieder von vorn aktualisiert,
    1 superschneller super-high-priority-Thread für Encoderpins alle 100µs auslesen,
    1 schneller high-proiority für 115200 baud UART für Dashboard und remote control im handshake ohne delay,
    1 mittelschneller medium priority für 400kHz I2C mit ein paar delays zwischen einzelnen Device r/w
    1 sehr langsamer low priority zum Keyboard auslesen
    1 medium priority für SD r/w
    usw.
    Delays in irgend einem Thread werden dabei automatisch als Rechenzeit den anderen Threads zur Verfügung gestellt.
    Die Zeitscheiben verwaltet pthread optimal, und das klappt wunderbar, kein Thread behindert einen anderen oder bremst irgend etwas aus, auch nicht auf einem Single-Core Zero: GPIO-toggle ist fast genau so schnell wie wenn es ganz alleine läuft.

    Hier beim Arduino aber muss ich alles in 1 Thread-Loop reinpressen, und viele langsame Vorgänge bremsen die schnellen unerträglich herunter.

    Dennoch, ich bin schon weitergekommen mit meiner statemachine, auch wenn es langsam unübersichtlich wird

    PS,
    Allerdings wäre auch für künftige andere Entprell-Probleme ein simpler Kondensator am Button einfacher gewesen - wenn es funktioniert hätte...
    Geändert von HaWe (16.05.2019 um 09:34 Uhr) Grund: PS

Ähnliche Themen

  1. Taster entprellen?
    Von Ferdinand im Forum C - Programmierung (GCC u.a.)
    Antworten: 12
    Letzter Beitrag: 18.08.2011, 22:27
  2. Probleme mit Taster entprellen
    Von Mr Bean im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 08.05.2007, 17:12
  3. Entprellen von Taster
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 10.07.2006, 10:15
  4. Taster Entprellen mit Bascom
    Von hardstyleroxx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 31.01.2005, 16:41
  5. Taster entprellen
    Von RCO im Forum Elektronik
    Antworten: 19
    Letzter Beitrag: 14.10.2004, 12:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress