📄 its_spi_config.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 + -