📄 adc12.h
字号:
/*************************************************************
* 文件名称:adc12.c
* 文件说明:adc12操作
*************************************************************/
#ifndef MSP430F247_H
#include <msp430x24x.h>
#endif
#define REFVOL 2.5 //vcc参考设为2.5
unsigned char adc_Flag;
unsigned int xindianresult; //定义心电AD转换的结果
/************************************************************
* 初始化ADC12
************************************************************/
void init_ADC12(void)
{
ADC12CTL0=ADC12ON+SHT0_2+REFON+REF2_5V; //设置ADC12 REFON+REF2_5V+
ADC12CTL1=SHP; //使用采样定时器输出做采集/转换信号SAMPCON
ADC12MCTL0=SREF_1; //使用外部参考电压Vr+=VeREF+
ADC12IE |= 0x01; // 使能中断
ADC12CTL0|=ENC; //允许转换
}
/***********************************************************
* 启动 ADC12
************************************************************/
void start_ADC12()
{
ADC12CTL0 |= ADC12SC;
adc_Flag = 0;
}
/***********************************************************
* 把数据编程要显示的格式,然后写到lcd_Buf显示缓存中去
***********************************************************/
void format_Data()
{
int result,tmpv,i,k;
unsigned int data_buf[4];
result = ADC12MEM0;
result = (unsigned int)(result*(2.5/4096)*10000);
xindianresult= result;
for(tmpv=0;tmpv<LCD_IN_USE-1;tmpv++)
{
for(k=4;k>0;k--)
{
result=result/10;
data_buf[k-1] =result%10;
for(i=0;i<16;i++)
{ lcd_Buf[tmpv][i] = NUM_LCD[data_buf[tmpv]][i]; //更新LCDMEM中的内容
}
}
}
}
//result = ( int)(((REFVOL * result )/ 4096 - 0.986) /0.0000355); //得到对应的温度值*10,以包括小数两位 ;
/***********************************************************
* 中断向量
************************************************************/
#pragma vector = ADC12_VECTOR
__interrupt void ADC_ISR(void)
{
format_Data(); //格式化数据并显示到LCD
adc_Flag = 1; //指示有数据要显示
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -