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

📄 ad_example.c

📁 西安明朗公司开发板ML-F020ICB的全部测试代码
💻 C
字号:
/************************************************************************************
*  Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* Http:  www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: AD_Example.c
* Project  : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
* 
* Author:  李林利
* Version: 1.20
* Date:    2007.6.1
* Email:   GavinLi@126.com
* 
* Description: AD测试程序文件;
*
* Others: none;
*
* Function List:
*	1. void AD_Proc(void)		
*
* History:
*   1. Author:       李林利  
*	   Version: 	 1.10
*	   Date:         2007.3.12
*      Modification: none
*
*   2. Author:       李林利   
*	   Version: 	 1.00
*      Date:         2004.11.24
*      Modification: 建立文件
*
*************************************************************************************/
/************************************************************************************/
// 引用外部头文件
#include  "..\config\Const.h"
#include  "..\config\config.h"
#include  "..\driver\uart.h"
#include  "..\driver\delay.h"
#include  "..\driver\adc.h"
#include  "main.h"
/************************************************************************************/

/************************************************************************************/
// 常量及全局变量定义
/************************************************************************************/

/*************************************************************************************/
//
// 							AD测试程序函数定义
//
/*************************************************************************************/

/***********************************************************************************
* Function: ADO_Proc;
*
* Description: AD测试程序;
*              
* Input:  none;
*
* Return: none;
*
* Note:   none;
************************************************************************************/
void AD_Proc(void)
{
	unsigned char i,cmd,j;
	int  val;	
	unsigned int buf[24];
    unsigned int rbuf[24];

	Uart0_SendBlock("AD test starting!\n\r",19,&i);
	
	
	ADC_Init();
	ADC_Enable();
	
	while(1)
	{
		cmd = 0;
		if (Uart0_GetCharsRxBuf()>0)
		{			
			Uart0_RecvChar(&cmd);
		}

    	switch (cmd)
        {
	         case 'A':
                  for (j=0; j<24; j++)
						buf[j] = 0;
				  
				  i=16;		
				  while(i>0)
				  {		
				  	if (ADC_Read(rbuf,24))
				  	{
				         i--;
						 for (j=0; j<24; j++)
							buf[j] += rbuf[j];					   
				  	}
				  }	
                 
                 for (j=0; j<24; j++)
					buf[j] = (buf[j]+8)>>4;					   
			

				 for (j=0; j<24; j++)
				 {
				   	Uart0_SendBlock("AIN",4,&i);
				    Send_Data(j+1);
				    Uart0_SendBlock(" = ",4,&i);
				    if (j<16)
					{		   //Send_Data(10000*((long)buf[j]-0x0800)/0x07ff);
					    buf[j] = ((unsigned long)buf[j]*10000/0x0fff);
						Send_Data(buf[j]);
				    }
					else
					{		  //Send_Data(2500*(long)buf[j]/0x0fff);
					   val = (int)buf[j];
					   val = (long)(val-0x800)*10000/0x0800; 
					   Send_Data(val);
				    }
					Uart0_SendBlock("\r\n",3,&i);	
			  	    Delay_ms(10);
				 }
				 cmd = 0;
		  	 break;		 
			 case 'E':
            	  ADC_Disable();	  
			 	  Uart0_SendBlock("AD test end!\n\r",14,&i);
				  return;
		  	 break;
			 default:

 			 break;
		}
	}
	
}

/***********************************************************************************/
// 文件结束
/***********************************************************************************/

⌨️ 快捷键说明

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