mirror of https://github.com/ARMmbed/mbed-os.git
K20xx sleep.c update
Utilised Header file mask defines. Tested InterruptIn and timer WakeUppull/957/head
parent
ca5fe8afd7
commit
4196e0530d
|
@ -48,16 +48,21 @@ void deepsleep(void)
|
|||
while((MCG->S & MCG_S_LOCK0_MASK) == 0x00U); /* Wait until locked */
|
||||
MCG->C1 &= ~MCG_C1_CLKS_MASK;
|
||||
#else
|
||||
MCG->C1 = (uint8_t)0x9Au;
|
||||
MCG->C6 = (uint8_t)0x00u;
|
||||
// MCG->C1: CLKS=2,FRDIV=3,IREFS=0,IRCLKEN=1,IREFSTEN=0
|
||||
MCG->C1 = MCG_C1_CLKS(2) | MCG_C1_FRDIV(3) | MCG_C1_IRCLKEN_MASK;
|
||||
// MCG->C6: LOLIE=0,PLLS=0,CME=0,VDIV0=0
|
||||
MCG->C6 = MCG_C6_VDIV0(0);
|
||||
while((MCG->S & MCG_S_OSCINIT0_MASK) == 0u) { } // Check that the oscillator is running
|
||||
while((MCG->S & 0x0Cu) != 0x08u) { } // Wait until external reference clock is selected as MCG output
|
||||
MCG->C5 = (uint8_t)0x05u;
|
||||
MCG->C6 = (uint8_t)0x43u;
|
||||
// MCG->C5: PLLCLKEN=0,PLLSTEN=0,PRDIV0=3
|
||||
MCG->C5 = MCG_C5_PRDIV0(5);
|
||||
// MCG->C6: LOLIE=0,PLLS=1,CME=0,VDIV0=3
|
||||
MCG->C6 = MCG_C6_PLLS_MASK | MCG_C6_VDIV0(3);
|
||||
while((MCG->S & 0x0Cu) != 0x08u) { } // Wait until external reference clock is selected as MCG output
|
||||
while((MCG->S & MCG_S_PLLST_MASK) == 0u) { } // Wait until the source of the PLLS clock has switched to the PLL
|
||||
while((MCG->S & MCG_S_LOCK0_MASK) == 0u) { } // Wait until locked
|
||||
MCG->C1 = (uint8_t)0x22u;
|
||||
while((MCG->S & MCG_S_LOCK0_MASK) == 0u) { } // Wait until locked
|
||||
// MCG->C1: CLKS=0,FRDIV=2,IREFS=0,IRCLKEN=1,IREFSTEN=0
|
||||
MCG->C1 = MCG_C1_FRDIV(2) | MCG_C1_IRCLKEN_MASK;;
|
||||
while((MCG->S & 0x0Cu) != 0x0Cu) { } // Wait until output of the PLL is selected
|
||||
while((MCG->S & MCG_S_LOCK0_MASK) == 0u) { } // Wait until locked
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue