Re: Was ist PEC (Peripheral Event Controller) ? Kategorie: Verschiedenes (von GĂĽnter Kargl - 19.11.2004 12:15) | |
Als Antwort auf Was ist PEC (Peripheral Event Controller) ? von Johannes - 7.04.2002 15:05
| |
> Hi ! > Kann mir jemand erklären, was PEC (Peripheral Event Controller) ist ? Datentransfer mit dem Peripherie Event Controller (PEC) Zwischen Peripherie und Mikrokontroller müssen Daten ausgetauscht werden. Handelt es sich dabei um mehrere Werte, können sie mit dem PEC - Transfer zwischengespeichert werden. Der Transfer unterbricht den Programmablauf nur für einen Maschinenzyklus da er nur durch Hardware realisiert ist. Es wird für den Datentransfer keine Interrupt Service Routine aufgerufen. Werden z.B. mehrere Kanäle der Analog / Digital - Wandler benutzt, muss nach jeder einzelnen Wandlung das Ergebnis ausgelesen werden, da nur ein Register zur Verfügung steht, in das der Wert abgelegt wird. Die Interrupt Routine, die aus den eingelesenen Werten die neuen Stellgrö�en berechnet, soll dagegen erst aufgerufen werden, wenn alle Kanäle gewandelt wurden. Bei Aufruf des eingestellten Interrupts werden zunächst nur der PEC - Transfer durchgeführt und der PEC - Zähler inkrementiert. Erst wenn der PEC - Zähler nach dem Einlesen aller Werte auf dem eingestellten Maximum steht, wird die eigentliche Interrupt Routine ausgeführt. Für den PEC - Transfer stehen 8 Kanäle zur Verfügung. Quelle und Ziel des Transfers werden durch den Source Pointer (SRCPx) und den Destination Pointer (DSTPx) angegeben. Die Interrupt- und Gruppenlevel sind zu den PEC - Kanälen fest zugeordnet. Die Anzahl der Transfers und die Art der Inkrementierung des Zeigers werden im Steuerregister PECCx angegeben. Für den PEC - Transfer der A/D - Werte wird der PEC - Kanal 0 verwendet. Dem Kanal 0 sind der Interruptlevel ILVL 14 und der Gruppenlevel GLVL 0 zugeordnet. Bei jedem Aufruf für den Transfer einer festen Quelle in ein Zielfeld soll der Zeiger DSTP0 inkrementiert werden, was durch INC = 01 eingestellt wird. Der Wert COUNT gibt an, bis zu welchem Wert der Zeiger inkrementiert werden soll. mehr weis ich auch nit sry | |
Antwort schreiben Antworten: |