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

📄 head_spi.h

📁 使用AVR单片机对信号进行采集,通过FFT,分析信号失真度
💻 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 + -