Am 21.09.2019 um 20:57 schrieb Sieghard Schicktanz:
Wie lange prellen denn die Kontakte?
DoDi
Am 21.09.2019 um 20:57 schrieb Sieghard Schicktanz:
Wie lange prellen denn die Kontakte?
DoDi
snipped-for-privacy@aol.com (Hans-Peter Diettrich) am 22.09.19 um 04:08:
Ich imitiere das so, wie man das von einfachen SPS kennt: Zyklisch
prellen nicht.
Wobei ich vor Jahren mal eine Maus hatte, bei der das Mausrad
Mausprogrammierer wohl auch beim Entprellen geschlampt ;-)
Rainer
-- Die Boulevardmedien haben genug damit zu tun, Fremdenhass
Hi Andreas,
Marte
Auf allen Echtzeitsystemen, die in einem Zugriff mehr als nur ein Byte
geht doch auch gar nicht darum, jetzt einen Fall zu konstruieren, der
danebengegangen und seit Jahren (wenn nicht Jahrzehnten) ohne Fix geblieben.
Volker
Am 23.09.19 um 13:52 schrieb Volker Bartheld:
Comic in dem Berliner Stadtmagazin Zitty, so vor 30 Jahren:
auch. Linux hat richtig hart gearbeitet, das BKL (Big Kernel Lock) loszuwerden:
JOhannes
-- selben Hardware." -- Hans-Peter Diettrich in d.s.e.
Am 23.09.19 um 13:52 schrieb Volker Bartheld:
-- ---hdw---
Unbestritten, aber solche Systeme betrachte ich nicht als Mikrocontroller. Wenn ein Prozessor Multithreading etc. erlaubt, und
erhebenn dann sieht man, wie weit dieses Thema vom Topic und der hiesigen NG weg ist.
DoDi
s
der
darf dann
digkeit einlesen kannst. Das geht so: Im schnellen Timerinterrupt werden di e A und B Signale eingelesen und in ein Byte geschoben. Dieses Byte enth? ?lt also nicht nur die aktuellen Signale, sondern auch die A und B Signal e zu den vergangenen drei Zeitpunkten. Dieses Byte wird nun als Eingangssig
hat. In die Erstellung dieser Tabelle musst du ein Bisschen Gehirnschmalz reinstecken und kannst dabei die Tatsache nutzen, dass sich die Drehgeschwi
en mit dieser Methode kompensiert werden.
Michael
einen Mutex, eine Critical Section oder sonst einen Synchronisierungsansatz ein. Das blockt dann aber die Threads, die
und Write-Back, usw. Ich will damit sagen: Multithreading ist schwierig.
Weil ich nicht am Not-Invented-Here-Syndrom leide.
Je nun. Ich baute mal einen Klon des Photoduino:
zu verwenden, die Hintergrundbeleuchtung nach einer gewissen Zeit abzuschalten und bei Tastendruck oder sonstigen nennenswerten Ereignissen wieder an.
Hintergrundbeleuchtungsinterrupt, wo eigentlich nur andere Interrupte deaktiviert und ein simples Bit an den PWM-Ausgang des Arduino geschrieben wurde.
Volker
Nicht verkopft, sondern den Nagel voll und ganz auf den Kopf getroffen.
Der unschlagbare Vorteil vom Sperren von Interrupts ist, dass es die aller, allereinfachste Synchronisationsprimitive ist, die man verwenden kann. Funktioniert absolut sicher. Die Nachteile sind aber eben genauso gravierend und erfordern dann (wie in deinen Beispielen geschildert)
Johannes
-- selben Hardware." -- Hans-Peter Diettrich in d.s.e.
garantierte Antwortzeit hat, aber nicht, welche das ist. Wenn der kurzzeitig abgeschaltete Interrupt innerhalb einer klar definierten (und
schwierig. Allerdings in jedem Fall.
Hanno
Ja.
DoDi
aber man kann im 5 ns-Raster Flanken erzeugen. Alles geht taktgenau. Jede PRU hat 32-Bit-Register mit denen man fast direttissima auf einige Pins und Devices zugreifen kann. Interrupts gibt's nicht
Mit einem popeligen Coolrunner2-IF kann ich 3 LTC2500-32 ADCs mit jeweils 100 MHz-SPI auslesen, ohne dass was verloren geht.
Passiert auch den Besten. Tektronix hatte mal ein ultraschnelles sampling scope, wo der Aperturjitter im Takte einer nicht sehr wichtigen Warn-LED um ein paar ps herumgetanzt ist.
Michael Koch :
Jo danke, genau so mache ich es schon. :-)
M.
snipped-for-privacy@bartheld.net (Volker Bartheld) am 24.09.19 um 10:43:
"stets mit vorhersagbarer maximaler Reaktionszeit".
Wenn eine Uralt-SPS einen eine ms langen oder gar noch langsameren Zyklus schafft, diesen aber /garantiert/, dann ist das halt "Echtzeit"
Wer mit einem 8-bit-AVR nun unbedingt 48-bittig rechnen will, der kann halt keine "Echtzeit" zwischen jedem Registerzugriff bei einer Plutimikation garantieren, sondern eben nur alle 384 (Hausnummer!) Prozessortakte. Wenn der Zwerg halt fertig ist mit der
dickeres nehmen und/oder schlauer programmieren.
Rainer
-- Muss man denn wirklich, um den Geschmack von Milch zu kritisieren, selber Kuh sein? (Tom! Striewisch in de.rec.fotografie)
Am 24.09.2019 um 19:01 schrieb Rainer Knaepper:
vorgegeben werden, wie lange die Bearbeitung eines Interrupts maximal
Handlers heruntergesetzt werden, oder noch besser die lange Verarbeitung in eine normale Task ausgelagert werden, damit der Handler keine Probleme mit Reentrancy bekommt.
Immer wieder gern ;-)
DoDi
snipped-for-privacy@aol.com (Hans-Peter Diettrich) am 24.09.19:
hineingerannt. Das ganze System basierte auf einem Taktgeber aus einer RTC und interruptete halt mit 64 Hz. Die komplette Ablaufsteuerung steckte in der ISR.
Basis steuern" - und schwupps reichten die 16ms nicht mehr zur Abarbeitung.
Ich schaue halt aus Elektrikerperspektive auf die Thematik, nicht informationstheoretisch.
Rainer
-- (Stefan Krah in de.comp.hardware.kuehlung+laermdaemmung)
und geschrieben werden. Das geht auch mit einem Wechselpuffer, wenn der Consumer via Flag den gerade beschriebenen Puffer auf read-only schaltet, und der Producer in den anderen - jetzt write-only - Puffer schreibt.
DoDi
Hans-Peter Diettrich :
kommt man dann schon an seine Grenzen, wenn man sagt: ok Porzessortakt sind 8
vermutlich maximal 500kHz sinnvoll. Wenn das Restprogramm komplex ist und etliche andere Interrupts laufen und womoeglich auch noch eine DMA den Speicher blockiert, dann ist man ganz schnell bei nur 20kHz angelangt, die
Encoder doch _deutlich_ programmiererfreundlicher. :-) :-)
M.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.