TMS320F28xx ( F2808) und GPIOLPMSEL im Halt Modus

Hallo,

im Datenblatt von TI steht zu GPIOLPMSEL :

/* If the respective bit is set to 1, the signal on the corresponding pin is able to wake the device from both HALT and STANDBY low power modes.

*/

Aber irgendwie kriege ich das nicht richtig zum laufen ... Er geht erst in den HALT Modus, wenn ich den Eingang toggle, und macht ansonsten nicht reproduzierbare Sachen.

Frage : Ist die Auslösung des Wakeint's bei jedem Flankenwechsel zu erwarten? Irgendwie steht es da ja nicht explizit drin. Ist es also ein PIN-CHANGE Interrupt? Und wird der Int nur ausgeführt, wenn er in einem LPM Mode läuft?

Was ich eigentlich haben möchte ist, das eine steigende Flanke an dem Pin GPIO21 den µC aus dem HALT holt.

Init :

EALLOW; // This is needed to write to EALLOW protected registers GpioIntRegs.GPIOLPMSEL.bit.GPIO21 = 1; PieVectTable.WAKEINT = &WAKE_ISR; IER |= M_INT1; PieCtrlRegs.PIEIER1.bit.INTx8 = 1; PieCtrlRegs.PIEACK.bit.ACK1 = 1; EDIS;

INT :

interrupt void WAKE_ISR(void) { PieCtrlRegs.PIEACK.bit.ACK1 = 1; return; }

Sleep :

void Sleep(void) {

EALLOW; if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 1) { SysCtrlRegs.LPMCR0.bit.LPM = 0x0002; // LPM mode = Halt } EDIS;

asm(" IDLE");

}

Was mache ich falsch??

Andreas

Reply to
Andreas Ruetten
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.