mikrocontroller mit mehr als einem Quadrature-Decoder Timer

Am 21.09.2019 um 20:57 schrieb Sieghard Schicktanz:

Wie lange prellen denn die Kontakte?

DoDi

Reply to
Hans-Peter Diettrich
Loading thread data ...

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
Reply to
Rainer Knaepper

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

Reply to
Volker Bartheld

Am 23.09.19 um 13:52 schrieb Volker Bartheld:

Comic in dem Berliner Stadtmagazin Zitty, so vor 30 Jahren:

Reply to
Gerhard Hoffmann

auch. Linux hat richtig hart gearbeitet, das BKL (Big Kernel Lock) loszuwerden:

formatting link
und es mit Version 3.0 (oder 2.6.xx) dann endlich geschafft.

JOhannes

--

selben Hardware." -- Hans-Peter Diettrich in d.s.e.
Reply to
Johannes Bauer

Am 23.09.19 um 13:52 schrieb Volker Bartheld:

--
---hdw---
Reply to
horst-d.winzler

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

Reply to
Hans-Peter Diettrich

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

Reply to
Michael Koch

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.

formatting link
formatting link
formatting link
formatting link
formatting link
formatting link

Weil ich nicht am Not-Invented-Here-Syndrom leide.

Je nun. Ich baute mal einen Klon des Photoduino:

formatting link

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

Reply to
Volker Bartheld

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.
Reply to
Johannes Bauer

garantierte Antwortzeit hat, aber nicht, welche das ist. Wenn der kurzzeitig abgeschaltete Interrupt innerhalb einer klar definierten (und

schwierig. Allerdings in jedem Fall.

Hanno

Reply to
Hanno Foest

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.

Reply to
Gerhard Hoffmann

Michael Koch :

Jo danke, genau so mache ich es schon. :-)

M.

Reply to
Matthias Weingart

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)
Reply to
Rainer Knaepper

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

Reply to
Hans-Peter Diettrich

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)
Reply to
Rainer Knaepper

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

Reply to
Hans-Peter Diettrich

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.

Reply to
Matthias Weingart

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.