📄 spi.c
字号:
#include "spi.h"
#include <Atmel/at89c5131.h>
unsigned char serial_data;
bit transmit_completed = 0;
bit overrun = 0;
bit fault_tasking = 0;
char SpiErrorCode = 0;
/**
* FUNCTION_PURPOSE: This file set up spi in master mode with
* Fclk Periph/128 as baud rate and without slave select pin
* FUNCTION_INPUTS: P1.5(MISO) serial input
* FUNCTION_OUTPUTS: P1.7(MOSI) serial output
* P1.1
*/
//----------------------------------------------------------------------------
void InitSpi()
{
//CS_SPI = 1;
EA = 0;
SPCON |= 0x10; /* Master mode */
SPCON |= 0x80; /* Fclk Periph/128 */
SPCON |= 0x20; /* P1.1 is available as standard I/O pin */
SPCON |= 0x08; /* CPOL=0; transmit mode example */
SPCON |= 0x04; /* CPHA=0; transmit mode example */
IEN1 |= 0x04; /* enable spi interrupt */
SPCON |= 0x40; /* run spi */
EA = 1; /* enable interrupts */
}
//----------------------------------------------------------------------------
void it_SPI(void) interrupt 9 /* interrupt address is 0x004B */
{
switch(SPSTA) /* read and clear spi status register */
{
case 0x80:
serial_data = SPDAT; /* read receive data */
SpiErrorCode = 0;
transmit_completed = 1;/* set software flag */
break;
case 0x10:
/* put here for mode fault tasking */
SpiErrorCode = SPI_ERROR_MODF;
transmit_completed = 1;
break;
case 0x40:
/* put here for overrun tasking */
SpiErrorCode = SPI_ERROR_OVERRUN;
transmit_completed = 1;
break;
}
}
//----------------------------------------------------------------------------
/*******************************************************
* 玎镨覃忄弪 徉轵 潆
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -