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

📄 main.c

📁 24位
💻 C
字号:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "RXDTXD.h"
#include "ADS1256.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);  
  
}



//--------------------------------------------------------------------------------------------
 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);     //串口初始化
  ADS1256();         //初始化ADS1256
  sei();
   
  while(1) 
  {
    aa=sum;
	if(aa<=10)
	  {sum=15;
	   a=0;b=0;c=0;n=0x400000;m=0;
	   for (i=0;i<12;i++)
	     {
	      p[i]=ads_sum(aa);//读A/D数据。通道地址0~7  0、1、2、3、4、5、6、7
	      if(n>p[i])
	      n=p[i];
	      if (m<p[i])
	       m=p[i];
	      d=d+p[i];
	     }
	   d=(d-n-m)/10;
	   a=d%256;
	   d=d>>8;
	   b=d%256;
	   d=d>>8;
	   c=d%256;
	   USART_Transmit(c);
	   USART_Transmit(b);
	   USART_Transmit(a);
	   
	  }
  }  
}

⌨️ 快捷键说明

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