📄 ad12.c
字号:
#include"ad12.h"
#include"key.h"
#define Num_of_Results 50
double A0results[2]; // A0
double A1results[2]; // A1
void init_adc12()
{
P6SEL = 0x03;
ADC12CTL0 = ADC12ON+MSC+SHT0_8; //开ADC12 模块+采样信号由 SHI 仅首次触发
ADC12CTL1 = SHP+CONSEQ_3+ADC12DIV_3;
ADC12MCTL0 = INCH_0;
ADC12MCTL1 = INCH_1+EOS;
ADC12IE = 0x03;
ADC12CTL0 |= ENC;
ADC12CTL0 |= ADC12SC;
_EINT();
}
// ADC12 中断服务程序
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
A0results[1] = ADC12MEM0;
A1results[1] = ADC12MEM1;
A0results[1] = A0results[1]*ref/4095;
A1results[1] = A1results[1]*ref/4095;
A0results[0] += A0results[1]; //移动 A0结果往数组,此操作的同时清除 ADC12FIG.0
A1results[0] += A1results[1]; //移动 A1结果往数组, 此操作的同时清除 ADC12FIG.1
if(index == Num_of_Results-1 && nRes != 3)
{
if(initsucces==1)
{
Go_where(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);
//countvalue2(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);//双显示
A0results[1] = A0results[0]/Num_of_Results;
A1results[1] = A1results[0]/Num_of_Results;
}
A0results[0]=0;
A1results[0]=0;
ADC12CTL0 &= ~ENC;
}
if(index == Num_of_Results-1 && nRes == 3)
{
if(initsucces==1)Go_where(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);
// countvalue2(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);//双显示
A0results[0]=0;
A1results[0]=0;
if(keyscan()==10) nRes=2;
}
index = (index+1)%Num_of_Results; // 增加结果的索引,取 index 变量的模(余数)
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -