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

📄 main.c

📁 16位的AD芯片的ADS1158的驱动程序。
💻 C
字号:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "RXDTXD.h"
#include "ADS1156.h"

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~配置SPI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void SPI_MasterInit(void)     //配置SPI为主机
{
/* 设置MOSI 和SCK 为输出,其他为输入 */
DDRB|=(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB5);
DDRB&=~(1<<PB4);
PORTB|=(1<<PB1)|(1<<PB2)|(1<<PB4); //定义SS的使能端
/* 使能SPI 主机模式,设置时钟速率为fck/16 */
SPCR = 0x52; //7e 高位首发,SPI使能,主机模式,SCK空闲保持为低电平,数据在上升沿采样,速率为1:64(FOSC/128) 
//SPSR = 0x01; //使能倍速1:32
}

//--------------------------------------------------------------------------------------------//

void  port (void)
{
  DDRD|=(1<<PD2);    //485  cs
  PORTD&=~(1<<PD2);  
  DDRB|=(1<<PB0);    //power 灯
  PORTB&=~(1<<PB0);  
  DDRD&=~(1<<PD3);   //DRDY
  PORTD|=(1<<PD3);  
  DDRD|=(1<<PD4);    //START
  PORTD|=(1<<PD4);  
  PORTB&=~(1<<PB2);     //复位ADS1256
  PORTB|=1<<PB2;
}



//--------------------------------------------------------------------------------------------
 main(void) 
{ 
  unsigned long int d=0,p[12],n=0,m=0;
  unsigned char aa=0,a=0,b=0,c=0,i=0;
  port();     //端口初始化
  SPI_MasterInit();  //SPI端口初始化 
  USART_Init(1);     //串口初始化
  ADS1158();         //初始化ADS1158
  sei();
   
  while(1) 
  {
    aa=sum;
	if(aa==1)
	  {sum=0;
	   d=ad_read();
	   a=d%256;
	   d=d>>8;
	   b=d%256;
	   d=d>>8;
	   c=d%256;
	   //USART_Transmit(c);
	   //USART_Transmit(b);
	   //USART_Transmit(a);
	   
	  }
	  
	 if(aa==2)
	  {
	   PORTB&=~(1<<PB2);     //复位ADS1256
       PORTB|=1<<PB2;
	  }
	  
	  
	 if(aa==3)
	  {USART_Transmit(aa);
	   sum=0;
	   ad_write(7,0);
	   ad_write(8,0xff);
	  }
	  
	 if(aa==4)
	  {USART_Transmit(aa);
	   sum=0;
	   ad_write(7,0);
	   ad_write(8,0x0f);
	  }
	  
	  
  }  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -