📄 spi.c
字号:
#include "includes.h"
INT8U DataSPI[3];
INT8U FlagSPI = ON;
INT8U LengthData ;
/******************************************************************
SPI.h
use this function to transfer the data,use the SPI0
******************************************************************/
/***************************************/
void SPI_Func(void) {
INT8U LcdSPI[] = {"Now Display the Function Of SPI "};
LcdWriteAll(LcdSPI);
InitSPI();
StarSPI0();
//SPISend(0x00);
for(;;) {
while (KeyFlag == ON) {
KeyFlag = OFF;
if (ValueKey == Exit) {StopSPI0();return;}
else if (ValueKey == Enter) { SPISend(0x00,1);}
}
}
}
/**************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
__interrupt void SPI_ISR(void) {
switch (SPI0SR) {
case 0x80:
DataSPI[(LengthData-1)] = SPI0DR;
//LengthData--;
// while(LengthData == 0) {
// FlagSPI = OFF;
//
// _NOP_
///
// _NOP_
// _NOP_
PTS_PTS7 = 1;
StopSPI0();
// LengthData = ~LengthData;
// /
// }
SPI0SR_SPIF = 1;
break;
case 0x20:
SPI0DR = 0xAA;
break;
default:
break;
}
}
/************************************/
#pragma CODE_SEG DEFAULT
void InitSPI(void)
{
MODRR = 0;//PS4-7 //1:PS2-5
SPI0CR1 = (SPI0CR1_SPIE_MASK
//+ SPI0CR1_SPTIE_MASK
//+ SPI0CR1_SSOE_MASK
//+ SPI0CR1_CPHA_MASK
//+ SPI0CR1_CPOL_MASK
+ SPI0CR1_SPTIE_MASK
);
MasterSPI0();
//SPI0CR2 = SPI0CR2_MODFEN_MASK ;
//SPI0BR = 0B10000100;
//SPI0BR = 0x03;
//SPI0BR_SPR2 = 1;
DDRS_DDRS7 = 1;
PTS_PTS7 = 1;
}
/**********************************
void SPIsend(byte ch)
{
SPI0CR1 = 0b01010010;
SPI0CR2 = 0b00010000;
SPI0BR = 0b00000011;
//the vesion of hyj.The s12 is master.no interrupt.
while(!SPI0SR_SPTEF){};
SPI0DR = ch;
}
*************************************/
/*******************************************/
INT8U *SPISend(INT8U ch,INT8U i)
{
INT8U *pP;
ch = 0;
InitSPI();
StarSPI0();
LengthData = i ;
PTS_PTS7 = 0;
_NOP_
_NOP_
_NOP_
/*while (FlagSPI){
while(!SPI0SR_SPTEF) {};
SPI0DR = ch;
//ch = 0xFF;
} */
FlagSPI = ON;
pP = DataSPI;
return (pP);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -