Input Capture bei XMega - welcher pin?

OP #2321084
Lesenswert?

Hallo zusammen,

Ich arbeite mich gerade bei den XMegas ein und möchte wie bei bisher bei 
den Megas über den ICP ein PWM Signal einlesen (Interrupt bei Flanke).

Ist es richtig dass ich beim XMEGA jedem pin die ICP FUnktion zuweisen 
kann? Oder wo befinden sich die ICPs?
#2324556
Lesenswert?

Allgemein habe ich nicht den Eindruck, daß hier viele den Xmega 
einsetzen.
Es dürfte daher kein böser Wille sein, daß Antworten dazu spärlich 
ausfallen.

Auch könnte ich mir vorstellen, daß sich nicht alle Xmega gleich 
verhalten, sondern Unterschiede bestehen. Eine konkrete Typangabe könnte 
daher sinnvoll sein.

Ich habe nicht vor, den Xmega einzusetzen, er ist mir zu weit vom 
klassik AVR entfernt (weder Pin- noch Spannungskompatibel, völlig andere 
Peripherie, keine Low-Pin-Count Versionen Xtiny).

Falls ich mal mehr Leistung benötigen sollte, würde ich eher zum Cortex 
M3 greifen.


Peter
Gast #2324569
Lesenswert?

Also:
Du hast pro Port (Gruppe von 8 IO Pins) max. 2 Interupts.

Jeder dieser beiden Interupts kann durch jeden der 8 Pins aufgerufen 
werden.

Für den Interupt0 gibt es das Register INT0MASK (das gibt es für JEDEN 
Port)

Für den Interupt 1 entsprechend INT1MASK.

In dieses Maskenregister trägst du die Pins ein die Interupt auslössen 
können sollen.

Ob bei positiver oder negativer Flanke eines Pins ausgelöst wird, wird 
im PINnCTRL eingestellt. (Dieses Register existiert 8 mal pro Port (für 
jeden Pin).

Details siehe Datenblatt: IO-Ports - Register description.
Gast #2324573
Lesenswert?

>Auch könnte ich mir vorstellen, daß sich nicht alle Xmega gleich
>verhalten, sondern Unterschiede bestehen.

Nein. Das ist einer der Vorteile bei den Xmegas. Sogar die Adressen der 
Register sind bei allen Typen identisch. Klar, bei kleineren Typen sind 
manche nicht vorhanden.
Prinzipiell sind alle xmegas softwarekompatibel.
#2324952
Lesenswert?

Hallo,

Hallo,

Daniel B. schrieb:
> Oder wo befinden sich die ICPs?

Input Capture Pin gibt es nicht wirklich...

du kannst jeden Port benutzen, dann aber über den Event-Channel an den
Capture Block weiterleiten.  Siehe folgeneden Code

/* Configure PC0 for input triggered on falling edge. */
PORTC.PIN0CTRL = PORT_ISC_FALLING_gc;

/* Select PC0 as input to event channel 2. */
EVSYS.CH2MUX = EVSYS_CHMUX_PORTC_PIN0_gc;

/* Configure TCC0 for Input Capture using event channel 2. */
TC0_ConfigInputCapture( &TCC0, TC_EVSEL_CH2_gc );

siehe application note AVR1306

Gruß Xmega
OP #2325451
Lesenswert?

Danke für Eure Hilfe, ich denke dann hab ich das Prinzipt jetzt 
verstanden!

Finden die Xmegas eigentlich gut Verbreitung / Anwendung? Man hört doch 
recht wenig von Ihnen. Einer der Hauptgründe warum ich sie nehmen will 
ist eigentlich nur, weil ich 24 MHz Takt benötige aber bei 2,7V 
Supply... und da helfen mir die megas leider nicht mehr weiter.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren