⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 此程序是MSC1201工程评估板MCU原代码.此芯片精度高.内部包含MCU
💻 C
字号:
//
//  MSC1200 Debug
//
//  This program configures the ADC input to measure 
//  the IDAC voltage through a 1k resistor on the
//  AIN7-AINCOM inputs on the MSC1200EVM.
//  The ADC output in floating point format is 
//  transmitted on UART0.
//  The "bipolar" routine returns the ADC value
//  in registers R4567 (long int).
//
//  The program is then downloaded by the serial 
//  debugger into the MSC1200.
//
#include <REG1200.H>
#include <stdio.h>
#define LSB 298e-9

at 0x803d code char HCR2 = 0x03;     // External Oscillator

extern signed long bipolar(void);
float result;
char AD_Done;

int putchar(int car)
{
	ES0=0;      // Mask USART INTs or 
                // they will clear TI_0 as soon as it appears
	TI_0=0;
	SBUF=car;
	while(!TI_0);
	TI_0=0;
	ES0=1;
}

void AUXInterrupt (void) interrupt 6
{
	switch (PAI)
	{
		case 6:						// ADC Interrupt
   		result = bipolar();
   		AD_Done = 1;			// Set ADC Done Flag
   	break;
	}
	AI=0;								// Clear Aux Int Before RETI
}

void main(void)
{
char i;
PDCON= 0xA7;	// Power Up IDAC, ADC
ACLK = 16;		// ACLK = 22.1184/17 = 1.301 MHz
               // 1.301 Mhz/64 = 20,330 Hz
ADMUX = 0x78;	// AINP = AIN7, AINN = AINCOM
DECIMATION = 2033; // Data Rate = 20,330/2,033 = 10 Hz

ADCON0 = 0x30;	// Vref On, 2.5V, Buffer Off, PGA=1
ADCON1 = 0x01;	// Bipolar, Auto, Self Calibration - Offset, Gain

IDAC = 0x84;	// IDAC = 3.81uA *1k *0x84 ~ 500mV

printf ("MSC1200 Debug Program\n");
for (i=0; i<3 ; i++)	{	
        while(!(AIPOL&0x20)) {}
	    result = ADRESL;	// Clear Filter
}

AIE = 0x20;		// Enable ADC Interrupt and HW Breakpoint Interrupt
EAI = 0x01;		// Enable Auxiliary Interrupts

while(1){
	while (!AD_Done);		// Loop Until ADC Interrupt
    AD_Done = 0;
	if (!(++i%4)) printf ("\n");
	printf ("%6.6f\t", result*LSB);	// Print ADC Results
	if ((result*LSB) > 0.504)
		--IDAC;
	if ((result*LSB) < 0.496)
		++IDAC;
		
 }
}
 







⌨️ 快捷键说明

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