⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 its_spi_config.c

📁 program show the communication of CC100-MSP430
💻 C
字号:
/******************************************************************************
    Filename: ITS_spi_config.c

    Copyright 2007 Texas Instruments, Inc.
******************************************************************************/

#include "ITS_types.h"
#include "ITS_defs.h"
#include "ITS_board.h"
#include "ITS_spi.h"
#include "ITS_spi_config.h"



#ifdef  HAL_SPI_INTERFACE_BITBANG
void ITSSpiInit(uint8 clockrate)
{
    // Set up pins
    MCU_IO_INPUT(HAL_SPI_SOMI_PORT, HAL_SPI_SOMI_PIN);
    MCU_IO_OUTPUT(HAL_SPI_SIMO_PORT, HAL_SPI_SIMO_PIN, 0);
    MCU_IO_OUTPUT(HAL_SPI_CLK_PORT,  HAL_SPI_CLK_PIN, 0);
    MCU_IO_OUTPUT(HAL_SPI_CS_PORT, HAL_SPI_CS_PIN, 1);
}

uint8 ITSSpiBitbangOut(uint8 data)
{
    uint8 i;
    uint8 rc = 0;

    for(i = 8; i > 0; i--)
    {
        // clock low
        MCU_IO_CLR(HAL_SPI_CLK_PORT, HAL_SPI_CLK_PIN);

        if (data & 0x80)
            MCU_IO_SET(HAL_SPI_SIMO_PORT, HAL_SPI_SIMO_PIN);
        else
            MCU_IO_CLR(HAL_SPI_SIMO_PORT, HAL_SPI_SIMO_PIN);
        data <<= 1;

        // clock high
        MCU_IO_SET(HAL_SPI_CLK_PORT, HAL_SPI_CLK_PIN);

        rc <<= 1;
        if (HAL_SPI_SOMI_VAL)
            rc |= 0x01;
    }

    // clock low
    MCU_IO_CLR(HAL_SPI_CLK_PORT, HAL_SPI_CLK_PIN);

    return(rc);
}

uint8 ITSSpiBitbangIn(void)
{
    uint8 i;
    uint8 data = 0;

    for(i = 8; i > 0; i--)
    {
        // clock high
        MCU_IO_SET(HAL_SPI_CLK_PORT, HAL_SPI_CLK_PIN);

        data <<= 1;
        if (HAL_SPI_SOMI_VAL)
            data |= 0x01;

        // clock low
        MCU_IO_CLR(HAL_SPI_CLK_PORT, HAL_SPI_CLK_PIN);
    }

    return(data);
}

#endif
#ifdef HAL_SPI_INTERFACE_USART0
void ITSSpiInit(uint8 clockrate)
{
     // Keep peripheral in reset state
    U0CTL = SWRST;

    // 8-bit SPI Master 3-pin mode, with SMCLK as clock source
    U0CTL  |= CHAR + SYNC + MM;
    U0TCTL |= CKPH + SSEL1 + SSEL0 + STC;

    // Ignore clockrate argument for now, just use clock source/2
    U0BR0  = 0x02;
    U0BR1  = 0x00;
    U0MCTL = 0x00;

    // Enable SPI mode
    ME1 |= USPIE0;
    
  //  P3SEL |= BIT1 + BIT2 + BIT3;
  //  P3DIR |= BIT3 + BIT0 + BIT1;

    // Set up pins used by peripheral unit
    MCU_IO_PERIPHERAL(HAL_SPI_SOMI_PORT, HAL_SPI_SOMI_PIN);
    MCU_IO_PERIPHERAL(HAL_SPI_SIMO_PORT, HAL_SPI_SIMO_PIN);
    MCU_IO_PERIPHERAL(HAL_SPI_CLK_PORT,  HAL_SPI_CLK_PIN);
    MCU_IO_OUTPUT(HAL_SPI_CS_PORT, HAL_SPI_CS_PIN, 1);

    // Release for operation
    U0CTL &= ~SWRST;
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -