Esempio n. 1
0
void msp430_spi_a0_init()
{
    /**Configure Pins for SPI
     * Set P2.7, P3.3 and P3.4 as Secondary Module Function.
     * */
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P2,
        GPIO_PIN7
    );
    GPIO_setAsPeripheralModuleFunctionInputPin(
        GPIO_PORT_P3,
        GPIO_PIN3 + GPIO_PIN4
    );
    //Initialize Master
    USCI_A_SPI_initMasterParam param = {0};
    param.selectClockSource = USCI_A_SPI_CLOCKSOURCE_SMCLK;
    param.clockSourceFrequency = UCS_getSMCLK();
    param.desiredSpiClock = 8000000;
    param.msbFirst = USCI_A_SPI_MSB_FIRST;
    param.clockPhase = USCI_A_SPI_PHASE_DATA_CHANGED_ONFIRST_CAPTURED_ON_NEXT;
    param.clockPolarity = USCI_A_SPI_CLOCKPOLARITY_INACTIVITY_LOW;
    USCI_A_SPI_initMaster(USCI_A0_BASE, &param);

    //Enable SPI module
    USCI_A_SPI_enable(USCI_A0_BASE);

    //Enable Receive interrupt
    USCI_A_SPI_clearInterrupt(USCI_A0_BASE,
                              USCI_A_SPI_RECEIVE_INTERRUPT);
    USCI_A_SPI_enableInterrupt(USCI_A0_BASE,
                               USCI_A_SPI_RECEIVE_INTERRUPT);
}
Esempio n. 2
0
bool USCI_A_SPI_masterInit(uint16_t baseAddress,
                           uint8_t selectClockSource,
                           uint32_t clockSourceFrequency,
                           uint32_t desiredSpiClock,
                           uint8_t msbFirst,
                           uint8_t clockPhase,
                           uint8_t clockPolarity)
{
    USCI_A_SPI_initMasterParam param = {0};
    param.selectClockSource = selectClockSource;
    param.clockSourceFrequency = clockSourceFrequency;
    param.desiredSpiClock = desiredSpiClock;
    param.msbFirst = msbFirst;
    param.clockPhase = clockPhase;
    param.clockPolarity = clockPolarity;

    return(USCI_A_SPI_initMaster(baseAddress, &param));
}