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

📄 main.c

📁 超声波测距程序
💻 C
字号:
//===============================================================
//
//        The information contained herein is the exclusive property of
//      Sunplus Technology Co. And shall not be distributed, reproduced,
//      or disclosed in whole in part without prior written permission.
//
//            (C) COPYRIGHT 2004   SUNPLUS TECHNOLOGY CO.
//                           ALL RIGHTS RESERVED
//
//    The entire notice above must be reproduced on all authorized copies.
//
//==============================================================


//============================================================
//  project  name:  20HzOut.scs
//  Author: xinqiang  (email: xinqiang@sunnorth.com.cn)    
//  Tel: 010-62981668-xxxx
//  Applied body: SPCE061A
//  Project Description:  flash erase and write driver
//
//  System Description: PC with CPU 233MHz,128MB RAM,
//                      SUNPLUS u'nSP IDE 1.8.4(or later)
//
//   Library:(a) sacmv26.lib
//            (b) 
//
// Files List:
//     main.c
//     Flash.asm/hardware.asm 
//     hardware.h/hardware.inc
//
//  Current Version:  V1.3
//  Date:  2005-8-9
//  
//  Reference:
//  Version history:V1.0  2004-7-13
//					V1.2  2005-6-7
//--------------------------------------------------------------------------------------------------------
//  Version   YYYY-MM-DD-INDEX   Modified By         Description
//
//===============================================================
//============================================================
//  工程名称:?  20HzOut.scs
//  作者: xinqiang  (email: xinqiang@sunnorth.com.cn)    
//  联系方式:? 010-62981668-xxxx
//  适应芯片: SPCE061A
//  实现功能:  flash erase and write driver
//
//  系统要求: PC with CPU 233MHz,128MB RAM,
//                      SUNPLUS u'nSP IDE 1.8.4(or later)
//
//   涉及的库:(a) sacmv26.lib
//             (b) 
//
// 组成文件:
//     main.c
//     Flash.asm/hardware.asm 
//     hardware.h/hardware.inc
//
//  当前版本:  V1.3
//  日期:  2005-8-9
//  
//  参考文件:
//  维护记录:
//--------------------------------------------------------------------------------------------------------
//  Version   YYYY-MM-DD-INDEX   Modified By         Description
//
//===============================================


///////////////////////////////////////////////////////////////////////////////
//文件名称: main.c
//描述:  超声波测距Demo的主程序,本程序用于模配合模组中测距模式选择为短距测量时用
//		即J1 COMLINE跳线接在LOW     选择模组工作在短距测距模式下
//		IOB2--BACK_PLUS				IOB2口为外部中断输入口,检测回波脉冲
//		IOB4--PLUS_EN1				IOB4设为输出口,以控制模组发射40KHz方波
//
//		模组上J2跳线接上
//		J9 Power接口的跳线接在5V一端  
//========================================================================================
#define P_INT_Ctrl_New			(volatile unsigned int *)0x702d
#define P_Watchdog_Clear		(volatile unsigned int *)0x7012 

#define M_KEY_ENTER		  0x0001	//按键  进行一次测量

//for Key
extern void F_Key_Scan_Initial(void);
extern void F_Key_Scan_ServiceLoop(void);
extern unsigned int  SP_GetCh(void);
//......end
//for Measure
extern void InitMeasure(void);
extern unsigned int  BeginMeasure(void);
extern void ErrorOS(void);
//..end
extern void Speech_Result(unsigned int uiResult);

int main()
{	
	unsigned int uiKey_Data;
	unsigned int Back_Data;			//测量返回数值
	
	__asm("INT OFF");
	InitMeasure();					//测量初始化
	F_Key_Scan_Initial();			//键盘初始化
	uiKey_Data = 0;
	//主循环  等待中断	
	while(1)
	{
		uiKey_Data = SP_GetCh();	//获取键值,直接返回,无延时
		switch(uiKey_Data)			//扫键,根据按键值进入不同的操作
		{
			case M_KEY_ENTER: 
				Back_Data = BeginMeasure();
				if(Back_Data==0)		//返回值为零时则进入出错处理
				{
					ErrorOS();
				}
				else
				{						//测回正确数据,播报
					Speech_Result(Back_Data);
				}
				break;					//
			case 2: break;	
			case 3: break;
			default: break;
		}
		F_Key_Scan_ServiceLoop();		//后台扫键的循环服务程序
		*P_Watchdog_Clear = 0x0001;		//清看门狗
	}
}


⌨️ 快捷键说明

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