久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
松翰SN8F5703單片機AD轉(zhuǎn)換例程
[打印本頁]
作者:
hexinquan
時間:
2020-12-8 11:16
標(biāo)題:
松翰SN8F5703單片機AD轉(zhuǎn)換例程
松翰5703例程_AD
#include <sn8f5703.h>
/*********************************************************************
CONST
*********************************************************************/
#define AD_CHANNEL1 0x00 //P20 AIN0
#define AD_CHANNEL2 0x02 //P22 AIN2
#define AD_CHANNEL3 0x0c //AIN12 內(nèi)部vdd輸入檢測
#define AD_SPEEDDIV16 0x00
#define AD_SPEEDDIV8 0x10
#define AD_SPEEDDIV1 0x20
#define AD_SPEEDDIV2 0x30
#define VREF_INT 0x00
#define VREF_EXT 0X80
#define VERFH_2V 0x00
#define VERFH_3V 0x01
#define VERFH_4V 0x02
#define VERFH_VDD 0x03
#define VERFH_INTVDD 0x04 //內(nèi)部vdd輸入檢測
#define ADSAMPLEMAX 8 //采樣8次,這個參數(shù)不用改動,防止AD值累計平均出錯
#define ADSHIFT 3 //右移3次平均
/*********************************************************************
DATA
*********************************************************************/
uint16_t ADValue1;
uint16_t ADValue2;
uint16_t ADValue3;
static uint8_t AD1Cnt = 0;
static uint16_t AD1Fifo[ADSAMPLEMAX] = 0;
static uint8_t AD2Cnt = 0;
static uint16_t AD2Fifo[ADSAMPLEMAX] = 0;
static uint8_t AD3Cnt = 0;
static uint16_t AD3Fifo[ADSAMPLEMAX] = 0;
/*********************************************************************
FUNCTION
*********************************************************************/
void InitAD(void);
void AD_Sample(void);
static uint16_t Get_AD(uint8_t ADChannel);
static uint16_t ADAverge(uint16_t *ADarray);
//===================================================================
// FUNCTION
//===================================================================
void main(void)
{
CLKSEL = 0x06; // Fcpu = 32M/2 = 16M
CLKCMD = 0X69;
CKCON = 0X10; // From = 8M
WDTR = 0x5A; // clear watchdog
P0 = 0;
P0M = 0;
P0UR = 0xFF;
P1 = 0;
P1M = 0;
P1UR = 0xFF;
P2 = 0;
P2M = 0;
P2UR = 0xFA; // AD口需設(shè)為輸入不上拉
P2CON = 0x05; //AD口打開,否則漏電
InitAD();
while(1)
{
WDTR = 0x5A; // clear watchdog
AD_Sample();
}
}
//=======================================================================
// AD 初始化
//=======================================================================
void InitAD(void)
{
ADM = 0x80;
ADM |= AD_CHANNEL1;
ADR = 0x40;
ADR |= AD_SPEEDDIV16;
VREFH = VREF_INT;
VREFH |= VERFH_4V;
P1CON |= 0; //需禁止相應(yīng)的施密特觸發(fā)。
P2CON |= 0x05;
}
//=======================================================================
// AD 滑動濾波
//=======================================================================
void AD_Sample(void)
{
AD1Fifo[AD1Cnt ++] = Get_AD(AD_CHANNEL1);
if(AD1Cnt == ADSAMPLEMAX) AD1Cnt = 0;
ADValue1 = ADAverge(AD1Fifo);
AD2Fifo[AD2Cnt ++] = Get_AD(AD_CHANNEL2);
if(AD2Cnt == ADSAMPLEMAX) AD2Cnt = 0;
ADValue2 = ADAverge(AD2Fifo);
VREFH |= VERFH_INTVDD;
AD3Fifo[AD3Cnt ++] = Get_AD(AD_CHANNEL3);
if(AD3Cnt == ADSAMPLEMAX) AD3Cnt = 0;
ADValue3 = ADAverge(AD3Fifo);
VREFH &= (VERFH_INTVDD^0xff);
}
//=======================================================================
// AD 去極值平均
//=======================================================================
uint16_t Get_AD(uint8_t ADChannel)
{
uint8_t i;
uint16_t AD_Max = 0;
uint16_t AD_Min = 0xffff;
uint16_t AD_Buffer = 0;
uint16_t AD_Data = 0;
ADM &= 0xf0;
ADM |= ADChannel;
AD_Data = 0;
for(i = 0; i < ADSAMPLEMAX + 2; i++)
{
ADM |= 0x40; //Start ADC
while((ADM & 0x20) != 0X20); //EOC
ADM &= 0xdf;
AD_Buffer = ADB;
AD_Buffer = (AD_Buffer << 4) + (ADR & 0X0F);
AD_Data += AD_Buffer;
if(AD_Buffer < AD_Min)
{
AD_Min = AD_Buffer;
}
if(AD_Buffer > AD_Max)
{
AD_Max = AD_Buffer;
}
}
AD_Data = (AD_Data - AD_Min - AD_Max) >> ADSHIFT;
return AD_Data;
}
//=======================================================================
//
//=======================================================================
uint16_t ADAverge(uint16_t *ADarray)
{
uint8_t i = 0;
uint16_t Sum = 0;
for(i = 0;i < ADSAMPLEMAX;i++)
{
Sum += *(ADarray+i);
}
Sum = Sum >> ADSHIFT;
return Sum;
}
復(fù)制代碼
5703_AD_20161103.rar
2020-12-8 11:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
34.74 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕av一区
|
免费一区二区三区
|
日韩伦理一区
|
日韩视频免费看
|
www.欧美日韩
|
av免费网站
|
免费看一级黄色片
|
成人深夜福利
|
亚洲毛片在线
|
成人综合婷婷国产精品久久
|
少妇bbw搡bbbb搡bbbb
|
日本黄色视
|
国产成人在线免费视频
|
久草国产视频
|
久久伊人久久
|
精品欧美在线
|
高潮毛片又色又爽免费
|
国产91在线播放
|
黄色大片免费观看
|
天堂av网站
|
精品国产成人
|
欧美在线免费观看
|
久久精品欧美
|
免费一看一级毛片
|
国产精品成人一区
|
在线日韩欧美
|
激情视频一区
|
4hu在线
|
av片在线免费观看
|
日韩一级二级三级
|
黄色一级大片在线免费看国产一
|
国产精品国产三级国产
|
亚洲激情第一页
|
国产精品一品二品
|
亚洲午夜视频
|
亚洲精品免费在线
|
亚洲激情成人
|
日韩在线视频一区二区三区
|
日产毛片
|
亚洲免费久久
|
a级片在线播放
|