Multitasking im Mikrocontroller

Thomas Finke :

Dafür braucht's kein Multitasking, jedenfalls dann nicht, wenn man nicht gleichzeitig rechnen und anzeigen will. Ein praktisches Beispiel findest Du hinter

formatting link
genauer gesagt hinter dem Link
formatting link

Es geht nur um die beiden Schnipsel "display" und "convert". Das ist m.E. kurz genug, um ohne weitere Erklärung verständlich zu sein.

Realisiert wird so ein zweistufiger Multiplex, es leuchten immer maximal zwei Segemente gleichzeitig. Das Ergebnis ist brauchbar, wie man dem (unretouchierten) Foto sieht.

N.B. In - simulierter - Aktion kann man sich das übrigens auf

formatting link
ansehen, worauf mich kürzlich ein Bekannter hinwies. Nett, wenn man Feierabendbasteleien, mit denen man sich vor vielen Jahren mal die Zeit vertrieben hat, Jahre später auf diese Weise recycled findet.

Wollte man gleichzeitig rechnen und anzeigen, würde man den Zustandswechsel (quasi die "inner loop") in der (hier stillgelegten) Interruptroutine erledigen. Das erfordert immer noch keine Zeitverwaltung.

Na ja, eigentlich nur einmal. :-)

M.E. genau so: in der "idle loop" werden die einzelnen Segemente in einem festen Schema angesteuert (in meinem Beispiel also nacheinander alle vier Anzeigen, dann innerhalb einer Anzeige vier Blöcke a jeweils zwei Segmente). Natürlich ist das an einige Bedingungen geknüpft (beispielsweise sollte der Test, so vorhanden, ob die idle-loop verlassen werden soll, nicht lange und vor allen Dingen nicht variabel lang dauern), aber Du fragtest ja nach "am einfachsten".

--
Wir danken für die Beachtung aller Sicherheitsbestimmungen
Reply to
Wolfgang Strobl
Loading thread data ...

Am Wed, 11 Jan 2006 22:53:36 +0100 schrieb Wolfgang Strobl :

Was ist der Vorteil dieses unüblichen Multiplex gegenüber dem normalen stellenweisen, wo man 7 Seg+DP als 8bit Wort rausschreibt, dann die Stelle aktiviert usw. ?

--
Martin
Reply to
Martin

Martin :

Probier's aus. :-)

Es ist lange her, ich habe die genauen Werte nicht mehr im Kopf und mag sie nicht nachschlagen, aber grundsätzlich ist es so. Ein PIC-Port kann nur 20 mA liefern und 25 mA als Senke vertragen (oder umgekehrt), insgesamt ist man auf ca 100 mA beschränkt. Ein Segment zieht lt. Datenblatt 30 mA.

Nun überlege, wie es sich auswirkt, wenn man einen Port als gemeinsame Kathode benutzt und alle acht Segmente über ihre Anoden gleichzeitig einzuschalteten versucht: statt acht leuchtender Segmente siehst Du gar nichts leuchten. Schon zwei Segmente sind rechnerisch zu viel, aber wie man an dem Photo sieht, reicht die so erzielte Gleichmäßigkeit aus.

Natürlich behilft man sich in der Praxis mit separaten Ansteuertransistoren. Ein Pfiff bei den PIC ist aber die recht robuste Beschaltung der Pins, die - s.o. - sowohl als Stromquelle als auch als Senke dienen können*), das wollte ich ausnutzen. Ein Ziel bei dieser Fingerübung war, mit einem Minimum an Bauteillen auszukommen, vier oder zwölf weitere Transistoren hätten sich da nicht so gut gemacht.

*) Im Ersatzschaltbild hat man einen FET gegen Plus, einen weiteren gegen Masse.
--
Wir danken für die Beachtung aller Sicherheitsbestimmungen
Reply to
Wolfgang Strobl

Thomas Finke schrieb:

Ich h=E4tte da auch noch was beizutragen:

formatting link

Gru=DF

Wolfgang

--

formatting link

Reply to
Wolfgang Weinmann

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.