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?
>Kann mir hier vielleicht jemand weiterhelfen?
Ja, das Datenblatt
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
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.
>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.
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
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.
Ich denke dass die xmegas in Zukunft beliebter werden. Schon alleine weil einige Typen mit USB erweitert werden.
SInd ja uach presilich sehr interessant, obwohl wie oben erwähnt, dann auch der ARM Cortex eingestezt werden könnte. Ist eigentlich etwas bekannt ob es hier auch noch ein Tutorial zu den XMEGAS geben wird (so ein schönes wie das AVR Tutorial)?
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.