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

📄 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<=8)
	  {sum=10;
	   d=ads_sum(aa);   //发送要读取的通道命令0、1、2、3、4、5、6、7,并近回蹈孟通道的AD转换值。
	   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==9)
	  {
	  sum=10;
	  USART_Transmit(aa); 
	  ADS1158();    //初始化ADS1256
	  }
  }  
}

⌨️ 快捷键说明

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