📄 head_spi.h
字号:
#define SPI_CS (1 << 6) // Pd6----CS
#define SPI_CLK (1 << 5) // Pd5----CLK
#define SPI_DATA (1 << 4) // Pd4----DATA
#define SPI_PORT PORTD
#define SPI_DDR DDRD
#define SPI_SET_CS() (SPI_PORT |= SPI_CS) // 位置位,输出1
#define SPI_SET_CLK() (SPI_PORT |= SPI_CLK)
#define SPI_SET_DATA() (SPI_PORT |= SPI_DATA)
#define SPI_CLEAR_CS() (SPI_PORT &= ~SPI_CS) // 位清零,输出0
#define SPI_CLEAR_CLK() (SPI_PORT &= ~SPI_CLK)
#define SPI_CLEAR_DATA() (SPI_PORT &= ~SPI_DATA)
void spi_send_data(int freq,char s_type)
{
char i,d;
SPI_DDR|=0b01110000;
SPI_CLEAR_CS(); delay_us(10);
SPI_CLEAR_CLK(); delay_us(10);
d=s_type;
for (i=0;i<4;i++)
{
if (d & 0x01) SPI_SET_DATA();
else SPI_CLEAR_DATA();
delay_us(100);
SPI_SET_CLK(); delay_us(100);
SPI_CLEAR_CLK(); delay_us(100);
d>>=1;
}
d=freq%256;
for (i=0;i<8;i++)
{
if (d & 0x01) SPI_SET_DATA();
else SPI_CLEAR_DATA();
delay_us(100);
SPI_SET_CLK(); delay_us(100);
SPI_CLEAR_CLK(); delay_us(100);
d>>=1;
}
d=freq/256;
for (i=0;i<8;i++)
{
if (d & 0x01) SPI_SET_DATA();
else SPI_CLEAR_DATA();
delay_us(100);
SPI_SET_CLK(); delay_us(100);
SPI_CLEAR_CLK(); delay_us(100);
d>>=1;
}
SPI_SET_CS();
delay_us(100);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -