This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR5994: MSP430FR5994: Clock Initialization not working using inbuilt functions

Part Number: MSP430FR5994


Hi,team
I'm using MSP430FR5994 Launchpad kit. I'm trying to Initialize clock sources using function "CS_initClockSignal" but when i call function initClock();, i'm getting "#10010 errors encountered during linking ".
I was able to blink LEDs and access switch inputs using another code. For accessing switch, i had to update MSP430FR5994.h file as per given in E2E forum.
The code i used is attached below. Please review.

#include "./MSP430FR5xx_6xx/driverlib.h"
#include <stdio.h>
//#include <driverlib.h>


void initClock(void);
void timer_delay(uint32_t);

 int flag1 = 0,flag2 = 0;
 int count = 0;
 volatile int SW1_state=1,SW2_state=1;

int main(void)
{

    volatile uint32_t i;
    volatile uint8_t SW1,SW2;
    volatile uint16_t SW1_interrupt=1,SW2_interrupt=1,SW1_interrupt_pre,SW2_interrupt_pre;

    volatile uint32_t delay = 0;



    // Stop watchdog timer
    WDT_A_hold(WDT_A_BASE);

    initClock();

    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);         // Set Red LED output
    GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);      // Red LED off
    GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN1);         // Set Green LED output
    GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN1);      // Green LED off

    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P5, GPIO_PIN6);                      // S1 P5.6: PxDIR, PxOUT and PxREN registers
    GPIO_selectInterruptEdge(GPIO_PORT_P5, GPIO_PIN6,GPIO_HIGH_TO_LOW_TRANSITION);      // S1 P5.6: PxIES register

    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P5, GPIO_PIN5);                      // S2 P5.5: PxDIR, PxOUT and PxREN registers
    GPIO_selectInterruptEdge(GPIO_PORT_P5, GPIO_PIN5,GPIO_HIGH_TO_LOW_TRANSITION);      // S2 P5.5: PxIES register


    SW1 = GPIO_getInputPinValue(GPIO_PORT_P5,GPIO_PIN6);

    SW2 = GPIO_getInputPinValue(GPIO_PORT_P5,GPIO_PIN5);





    //SW1_state = SW1 & 0x08;

    // Disable the GPIO power-on default high-impedance mode to activate previously configured port settings
    PMM_unlockLPM5();

    // Set all P5IFG to zero
    P5IFG = 0x00;


    GPIO_enableInterrupt(GPIO_PORT_P5, GPIO_PIN5);
    GPIO_enableInterrupt(GPIO_PORT_P5, GPIO_PIN6);

    __bis_SR_register(GIE);  // Enable all interrupts

    //*
    // Enable Switch interrupt
    GPIO_clearInterrupt(GPIO_PORT_P5, GPIO_PIN5);
    GPIO_clearInterrupt(GPIO_PORT_P5, GPIO_PIN6);

    //*/

    SW1_interrupt_pre= GPIO_getInterruptStatus(GPIO_PORT_P5, GPIO_PIN6);
    SW2_interrupt_pre= GPIO_getInterruptStatus(GPIO_PORT_P5, GPIO_PIN5);

	
	
}




/* Initializes Clock System */
void CS_init()
{
    // LFXT Setup
    // Set PJ.4 and PJ.5 as Primary Module Function Input.
    GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_PJ,GPIO_PIN4 + GPIO_PIN5,GPIO_PRIMARY_MODULE_FUNCTION);

    CS_setExternalClockSource(32768, 0); //void CS_setExternalClockSource (LFXTCLK_frequency, HFXTCLK_frequency ) both in Hzl

    // Initializes the XT1 crystal oscillator
    CS_turnOnLFXT(CS_LFXT_DRIVE_3);

    // Set DCO frequency to 16MHz
    CS_setDCOFreq(CS_DCORSEL_1, CS_DCOFSEL_4);

    // Configure one FRAM wait state as required by the device data sheet for MCLK
    // operation beyond 8MHz _before_ configuring the clock system.
    FRCTL0 = FRCTLPW | NWAITS_1;

    CS_initClockSignal(CS_MCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);
    CS_initClockSignal(CS_SMCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);
    CS_initClockSignal(CS_ACLK,CS_LFXTCLK_SELECT,CS_CLOCK_DIVIDER_1);
}


**Attention** This is a public forum