Hi Leute! Was versteht ihr unter einem Peripheral Event Controller eines µ-C's? Meine Vorlesungsunterlagen geben zu der Arbeitsweise leider nicht so viel her. Auch das Internet beschränkt sich etwas arg... So lang ich nämlich nicht weiß, was das Teil macht, kann ich das Blockablaufbild nicht so richtig interpretieren...
Hat sich dein Prof wohl selber ausgedacht, denn sowas gibt es eigentlich garnicht. Vielleicht meint er, daß es in der Peripherie ja Ereignisse gibt, wie z.B. "UART hat Zeichen empfangen", die man je nach uC vom Programm aus abfragen kann oder als Interrupt-Quelle für den Interrupt-Controller benutzen kann oder als Start für einen DMA-Controller. W.S.
Das gibt es schon, beim C167 und seinen Nachfolgern Das ist eine Einheit, die interruptgesteuerte Transfers autark ausführt, d.j. ohne die CPU zu belasten. Genaueres findes du im zugehörigen UserManual.
Die XMegas haben auch ein Event System, bei dem bestimmte Ereignisse unabhängig von der CPU Ereignisse auslösen können. Z.B. kann ein Timer OVF Event den ADC triggern oder ein 'ADC Ready' den DMA anschubsen. Das ganze geht dann ohne Interrupts. Ich hab das Blockschaltild des XMega grad nicht im Kopf, mögl. nennt Atmel den Ereignis Router einen Event Controller.
Ich hab mir nun mal die Dokumentation vom XE angeschaut. Da wird zwar alles recht übersichtlich erklärt, wie man den PEC einstellt, aber was das im Grunde ist, steht da nicht. Mein Problem ist, dass ich die Zeichnung des Ablaufs von diesem PEC nicht verstehe...
Ich hab mir das nun mal noch genauer angeschaut und ich verstehe das so: Es gibt ein Register, in dem ein Feld Count, und ein Feld INC beschrieben werden kann. Der Wert im Feld Count kann von 0-255 beschrieben werden das INC-Feld was dekrementiert werden soll. SourcePOinter DestinationPointer oder beides gleichzeitig. Wenn nun das Count = 0 ist, dan wir d ein normaler interrupt durchgeführt. Wenn Count zwischen 254..2 ist, dann wird das RequestFlag gelöscht, count dekrementiert und PEC-Transfer durchgeführt Wenn Count = 1 ist dann wird das RequestFlag nciht gelöscht, count dekrementiert und PEC-Transfer durchgeführt Wenn Count = 255 ist dann wird das RequestFlag nciht gelöscht, count dekrementiert und PEC-Transfers werden kontinuierlich durchgeführt; ohne count zu verändern Soweit so gut. Aber was bringt mir das jetzt? Was ist nun ein PEC? Eine Art Interrupt? was ist das besondere dran? Warum brauch ich noch eine neute Art interrupt? Das steht leider im Handbuch nicht.
Im Grunde geht es um Datentransfers, z.B. vom ADC in den Speicher. Du stellst die Quelle und Zielstartadresse ein, sowie die gewünschte Anzahl an Transfers. Wenn die eingestellte Peripherie einen Interrupt auslöst, erfolgt nur dieser Datentransfer (ein Word oder Byte) im Hintergrund. Erst wenn alle Transfers ausgeführt sind (nach eingestellter Anzahl) gibt es wirklich einen Interrupt.
Hab ich leider vergessen: Was ein RequestFlag sein soll, wurde mir in dem Handbuch auch nicht gesagt. Im Internet und in meinen Unterlagen steht dazu leider auch nichts...
hier: http://www.infineon.com/cms/en/product/microcontrollers/16-bit-c166-microcontrollers/16-bit-c166-microcontrollers/channel.html?channel=db3a30432313ff5e012332d4d2cb306c findet man: Peripheral Event Controller The Peripheral Event Controller (PEC) enables single cycle data transfers between memory and peripherals without the intervention of an interrupt service routine. The PEC provides eight PEC service channels which move a single byte or word between any two locations with optional automatic updating of the source and destination pointers. A PEC transfer can be triggered by any interrupt service request and is the fastest possible interrupt response. in der Praxis läuft das so wie von Guido beschrieben.
Das ist das Flag, das gesetzt wird, wenn ein Interrupt angefordert (ausgelöst) wird. Dies führt je nach Priorität dazu, dass ein PEC-Transfer oder die ISR ausgeführt wird.
poiu schrieb: > Im Internet und in meinen Unterlagen > steht dazu leider auch nichts.. unter 'interrupt request flag' gibt es schon ein paar zig tausend Treffer im Netz.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.