adc.c

来自「smdk40100 40mhz test code」· C语言 代码 · 共 78 行

C
78
字号
#include <string.h>
#include "..\include\k401.h"
#include "..\include\k401lib.h"
#include "..\include\adc.h"

void Test_Adc(void)
{
    int savePcon8, savePUR8;
    int i,k;
    int a,b,c,d,e,f,g,h;

    a=b=c=d=e=f=g=h=0;

    Uart_Printf("[ADC Function Test:AIN[7:0], XPx2, 10-bit]\n");

    savePcon8=rPCON8;
    savePUR8=rPUR8;
    rPCON8=0xff;
    rPUR8=0x0;
    
    rADCCON=ADC_CTRL_DEFAULT;

    for(k=0;k<100;k++)
    {
	rADCCON|=ADC_CTRL_AIN_0 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	a+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_1 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	b+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_2 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	c+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_3 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	d+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_4 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	e+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_5 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	f+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_6 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	g+=rADCDAT;

	rADCCON|=ADC_CTRL_AIN_7 | ADC_CTRL_START;
        for(i=0;i<10;i++);
        while(!(rADCCON & ADC_CTRL_FLAG_END));
	h+=rADCDAT;
    }

    a=a/100;
    b=b/100;
    c=c/100;
    d=d/100;
    e=e/100;
    f=f/100;
    g=g/100;
    h=h/100;

    Uart_Printf("A0=0x%3x, A1=0x%3x, A2=0x%3x, A3=0x%3x, A4=0x%3x, A5=0x%3x, A6=0x%3x, A7=0x%3x\n",a,b,c,d,e,f,g,h);
    rPCON8=savePcon8;
    rPUR8=savePUR8;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?