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

📄 spi.c

📁 This is example of using Atmel at89c5131 MCU with at49db11(spi dataflash) and epson s1d1335 graphic
💻 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 + -