Hello every one,
I am using CC430F5137 on Olimax Board. i want to source my SMCLK from XT2 for that purpose i am using the code which is given in the TI example but didnot get one thing that why we are using while(1) in the end line.
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
PMAPPWD = 0x02D52; // Get write-access to port mapping regs
P2MAP2 = PM_SMCLK; // Map SMCLK output to P2.2
P2MAP4 = PM_MCLK; // Map MCLK output to P2.4
PMAPPWD = 0; // Lock port mapping registers
P2DIR |= BIT2 + BIT4; // MCLK, SMCLK set out to pins
P2SEL |= BIT2 + BIT4; // P2.2, P2.4 for debugging
UCSCTL6 &= ~XT2OFF; // Enable XT2
UCSCTL3 |= SELREF_2; // FLLref = REFO
// Since LFXT1 is not used,
// sourcing FLL with LFXT1 can cause
// XT1OFFG flag to set
// ACLK=REFO,SMCLK=DCO,MCLK=DCO
UCSCTL4 = SELA__REFOCLK + SELS__DCOCLKDIV + SELM__DCOCLKDIV;
// Loop until XT1,XT2 & DCO stabilizes
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
UCSCTL4 |= SELA__REFOCLK + SELS__XT2CLK + SELM__XT2CLK; // SMCLK=MCLK=XT2
while(1); // Loop in place
}