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

📄 main.c

📁 max125在LPC2292/2294上的应用采集数据代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
//第一片max125地址
#define HA_AD_ADDR   (*(volatile INT16U *)0x83000000)   // AD地址
//max125转换允许
#define HA_AD_CONVST   (1<<28)
#define HA_PORT_LED  (*(volatile uint8 *)0x81400000)   //面膜上的LED灯
/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
* 入口参数:dly		延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void  DelayNS(uint32  dly)
{  uint32  i;

   for(; dly>0; dly--) 
      for(i=0; i<50000; i++);
}

	// A/D采样 
void max125_demo(uint16 *ad_data) 
{
 
HA_AD_ADDR=0x0001<<2; /*选择连续转换通道CH1A CH2A 6 us*/ 
DelayNS(20);  //如用ucos2,可直接用延时函数OSTimeDly()精确延时 ,一般延时为125ns

//以上为选择通道,准备模数转换
/*set convst pulse*/ //疑问:是否需要具体脉冲
/*对于具体的硬件配置,set convst pulse的代码应如下*/
// convst接的是arm 的P2.28口
//IO2SET=HA_AD_CONVST;
IO2CLR=HA_AD_CONVST;
DelayNS(6);   //最小30ns
IO2SET=HA_AD_CONVST;

DelayNS(50); /*delay 12us*/ //最好用查询INT脚方式

ad_data[0]=(HA_AD_ADDR>>2)&0x3fff;
//DelayNS(1);
ad_data[1]=(HA_AD_ADDR>>2)&0x3fff; 
//DelayNS(1);
 //若连续转换几个通道,则可以连续读出
//ad_data[2]=HA_AD_ADDR&0x3fff; 
//ad_data[3]=HA_AD_ADDR&0x3fff; 
/*ad_data[4]=HA_AD_ADDR&0x3fff; 
ad_data[5]=HA_AD_ADDR&0x3fff; 
ad_data[6]=HA_AD_ADDR&0x3fff; 
ad_data[7]=HA_AD_ADDR&0x3fff; 
*/
} 
        
/****************************************************************************
* 名称:main()
*   
****************************************************************************/
int  main(void)
{ 
  static uint16 a=1,b=0;
  uint16 ad[2];
  HA_PORT_LED=0x00;  
  PINSEL0 = 0x80055555;
  PINSEL1 = 0x20040014;
  IO2DIR=HA_AD_CONVST;
  IO2SET=HA_AD_CONVST;
  max125_demo(ad);
//  max125_demo(ad);
a=ad[0];
b=ad[1];
  return(0);
}



/*********************************************************************************************************
*                           End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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