?? ad_example.c
字號(hào):
/************************************************************************************
* Copyright (c), 2004-2007,西安銘朗電子科技有限責(zé)任公司
* 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測(cè)試程序文件;
*
* 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測(cè)試程序函數(shù)定義
//
/*************************************************************************************/
/***********************************************************************************
* Function: ADO_Proc;
*
* Description: AD測(cè)試程序;
*
* 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;
}
}
}
/***********************************************************************************/
// 文件結(jié)束
/***********************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -