신 당 N76E 003 ADC 다 중 채널 채집 처리(2)
2249 단어 싱글 칩 마이크로컴퓨터
우선 설정 에 있어 서 설정 은 매우 간단 합 니 다.초기 화 할 때 하나의 채널 을 초기 화 한 다음 에 전체 변수 인 gAdcChannel 을 돌아 가 는 표지 로 정의 합 니 다.이 MCU 의 ADC 속 도 는 비교적 좋 습 니 다.약 3-4us 는 ADC 의 샘플링 을 완성 할 수 있 지만 신 당 이 제공 하 는 Demo 를 사용 하지 않 는 것 을 권장 합 니 다.그 는 while()를 사용 하여 기다 리 는 방식 을 막 고 ADC 샘플링 결과 가 나 올 때 까지 다음 작업 을 할 수 있 기 때문이다.
void adcInit(void)
{
Enable_ADC_BandGap;
gAdcChannel=1;
clr_ADCS;// clr_ADCF;
set_ADCS;// BSP , ,
// Enable_ADC_BandGap ADC ,
}
void sysAdcCheck(void)//ADC ,
{
u16 adcTempData;
if(ADCS == 0)
{//adc
adcTempData = (ADCRH<<4)+ADCRL;//
clr_ADCEN;// ADC ,
switch(gAdcChannel)
{
case 1:
Eanble_ADC_AIN2;
set_ADCS;// ,
gAdcChannel=2;// , ,
break;
case 2:
Eanble_ADC_AIN3;
set_ADCS;// ,
gAdcChannel=3;// , ,
break;
case 3://
Eanble_ADC_AIN1;
set_ADCS;// ,
gAdcChannel=1;// , ,
break;
default:
Eanble_ADC_AIN1;
set_ADCS;// ,
gAdcChannel=1;// , ,
break;
}
}
}
위 는 전체 처리 과정 이지 만 모든 사람의 개발 에서 ADC 에 대한 요구 가 다 르 기 때문에 이것 은 참고 일 뿐이다.
그리고 또 하나의 문 제 는 만약 에 이상 한 상황 이 발생 하여 ADC 의 값 을 계속 읽 지 못 한다 고 가정 하 는 것 입 니 다.자=이것 이 바로 while()로 기다 림 을 막 을 수 없 는 이유 입 니 다.이 럴 때 ADC 를 다시 켜 야 합 니 다.아래 의 방법 을 참고 하 십시오.
ADC 가 읽 지 못 하면 ADCS 가 항상 1 과 같다 고 생각 합 니 다.그러면 우 리 는 if(ADCS==0)의 판단 에서 타이머 의 타이머 변 수 를 사용 할 수 있 습 니 다.들 어 올 때마다 이 변 수 를 0 으로 정리 하고 들 어 오지 않 으 면 이 변 수 는 우리 가 설정 한 시간 을 초과 하여 계속 누적 시간 을 계산 할 수 있 습 니 다.그러면 주 순환 에서 ADC 샘플링 을 다시 시작 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[51 싱글 칩 마이크로컴퓨터] TFT 2.4 컬러 스크린 2 [32 * 32 문자 표시]>_<:같은 이치 로 다른 형식의 글꼴 을 표시 하려 면 해당 하 는 라 이브 러 리 를 만들어 야 합 니 다. 예 를 들 어 gb 3232 의 한자 라 이브 러 리 가 있 습 니 다: GB 3232. >_<:지난 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.