?? 備份 fft_240128.c
字號:
/********16位ad函數*************
sclk 接PD2
DOUT 接PD1
CONV 接PD3
EOC 接PD0
cs 接PD4
*******************************/
#define uint unsigned int
#define uchar unsigned char
#include<avr/io.h>
#include <avr/pgmspace.h>
/*-----------------------------------------------------------------------
延時函數
系統時鐘:8M
-----------------------------------------------------------------------*/
void delay_1us(void) //1us延時函數
{
asm("nop");
}
void delay_nus(unsigned int n) //N us延時函數
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1us();
}
void delay_1ms(void) //1ms延時函數
{
unsigned int i;
for (i=0;i<1140;i++);
}
void delay_nms(unsigned int n) //N ms延時函數
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1ms();
}
/**********位操作函數*********/
void set_sclk(uchar i)//clk 接PA2
{
if(i)
PORTD|=0x04;
else
PORTD&=0xfb;
}
void set_conv(uchar i)
{
if(i)
PORTD|=0x08;
else
PORTD&=0xf7;
}
void set_cs(uchar i)
{
if(i)
PORTD|=0x10;
else
PORTD&=0xEF;
}
/*********m16初始化**********/
void m16_init(void)
{
DDRD|=0Xfc;
DDRD&=0Xfc;//定義pa1 pa2 為輸入,其他引腳為輸出
DDRE=0Xff;
DDRF=0Xff;
DDRG=0Xff;
DDRB=0Xff;
DDRC=0Xff;
DDRA=0Xff;//端口初始化
PORTD|=0X03;//定義pa1 pa2為帶上拉輸入
//CLI();//關中斷
}
/********max195初始化********/
void max195_inital(void)
{
set_cs(1);
set_sclk(0);
}
/**********************
max195轉換開始
**********************/
void max195_start(void)
{
set_conv(0);//,啟動轉換
delay_nus(100);
set_conv(1);
}
/***********************/
uint max195_read(void)
{ uint num2=0;
uchar num1=0,k;
while((PIND&0x01)==0x01);
set_cs(0);
for(k=0;k<16;k++)
{
set_sclk(1);
delay_1us();
if((PIND&0x02)==0x02)//判斷pa1是否為1
{
num1=1;
//PORTA|=0x20;
}
else
{
num1=0;
//PORTA&=0xdf;
}
num2=num2*2+num1;
set_sclk(0);//下降沿鎖存下一位
delay_nus(3);
}
return num2;
}
int main(void)
{
uint dat=0,average_dat[10]={0};
uchar i=0;
float average=0.0;
volatile float v=0.0;
m16_init();
max195_inital();
for(i=0;i<10;i++)
{
max195_start();
delay_nus(10);//必須加一段延時
dat=max195_read();
average_dat[i]=dat;
average=average+average_dat[i];
}
v=(average/10-32768);
v=v*2.48/32768;
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -