📄 spi.c
字号:
#include <avr/io.h>
#include "spi.h"
#include "global.h"
void SPI_Init() // SPI 烹脚 檬扁拳 窃荐
{
sbi(SPI_DDR, SS); // Master 葛靛俊辑绰 (PB0锅 巧阑 荤侩窍瘤 臼酒档) 怖 免仿栏肺 汲沥秦 林绢具 窃
sbi(SPI_DDR, SCK); // SCK 巧阑 免仿栏肺 汲沥
sbi(SPI_PORT, SCK); // SCK = high
sbi(SPI_DDR, MOSI); // MOSI 巧阑 免仿栏肺 汲沥
cbi(SPI_DDR, MISO); // MISO 巧阑 涝仿栏肺 汲沥
}
// Mode 0 : MCU <-> vs1003 (SCI 烹脚俊 荤侩(力绢疙飞 价荐脚 = SCI Read, Write)
// Mode 3 : MCU <-> SD墨靛, MCU -> vs1003 (SDI 烹脚俊 荤侩: mp3 单捞磐 傈价)
void SPI_Mode(U8 mode)
{
// sbi(SPCR, SPE); // Enable SPI
// cbi(SPCR, DORD); // Data 傈价鉴辑(0 : MSB / 1 : LSB何磐 傈价)
// sbi(SPCR, MSTR); // Master mode(0 : Master / 1 : Slave)
if (mode == 0)
{
SPCR=0x5C; // 2MHz
cbi(SPSR, SPI2X);
}
else if (mode == 3)
{
SPCR=0x5C; // 4MHz
sbi(SPSR, SPI2X);
}
}
U8 SPI_Transfer_Byte(U8 data)
{
U8 temp=0;
SPDR = data; // 单捞鸥 傈价
while((SPSR & 0x80)==0x00);
temp = SPDR; // 单捞鸥 荐脚
return temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -