Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Peter Heitzer" Newsgroups: de.sci.electronics Subject: Re: Quelloffenes Microcontroller-Oekosystem? Date: 19 Dec 2016 08:59:41 GMT Lines: 23 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net dwkfkUVq4cm/HW4d8JHS0ASGybf52rkir/6dIpxtagfwvT2k4DiDGKv9BN X-Orig-Path: not-for-mail Cancel-Lock: sha1:iSfhHXxrNlFK+DnX6xHX9cVwqOQ= User-Agent: tin/2.2.1-20140504 ("Tober an Righ") (UNIX) (Linux/3.16.0-4-amd64 (x86_64)) Xref: csiph.com de.sci.electronics:218718 Hans-Peter Diettrich wrote: >Matthias Weingart schrieb: >> Dabei >> ist das LED-Blinken ganz einfach: in der ohnehin vorhandenen Interruptroutine >> des Systemtimers einfach ne Variable mitzählen lassen und wenn das >> Blinkintervall voll ist, die LED toggeln. Der Controller ist weiterhin frei, >> um andere Aufgaben zu übernehmen und das da ne LED noch irgendwo im >> Hintergrund blinkt, kann völlig ausgeblendet werden. >Wobei die Abfrage im ISR den Ablauf immer verlangsamt, während eine >Abfrage in loop() nur die überhaupt noch freie Zeit verringert. Man kann >also durch Überlasten der ISR den ganzen Prozessor blockieren, beim >Pollen in loop() hingegen geht nichts verloren, es wird höchstens etwas >langsamer. Das ist gerade das Blinken einer LED oder auch das Entprellen >eines Schalters ein ganz schlechtes Beispiel für die Verwendung von >Interrupts. Bei manchen µC geht es auch ganz ohne ISR. Da programmiert man für den Timer einfach Capture o.Ä. Register und wenn der Timer den Wert X erreicht, dann toggled ein Portpin. -- Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de