📄 main.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) sacmv25.lib
// (b)
//
// Files List:
// main.c
// Flash.asm/hardware.asm
// hardware.h/hardware.inc
//
// Current Version: V1.0
// Date: 2004-7-13
//
// Reference:
// Version history:
//--------------------------------------------------------------------------------------------------------
// 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) sacmv25.lib
// (b)
//
// 组成文件:
// main.c
// Flash.asm/hardware.asm
// hardware.h/hardware.inc
//
// 当前版本: V1.0
// 日期: 2004-7-13
//
// 参考文件:
// 维护记录:
//--------------------------------------------------------------------------------------------------------
// Version YYYY-MM-DD-INDEX Modified By Description
//
//===============================================
///////////////////////////////////////////////////////////////////////////////
//程序名称:20Hz Out Test_main.c
//描述: A口的一个口输出20Hz的方波,用于超声波模组的40KHz波形的调制
//同时用B口的一个IO口测超声波模组的出输信号,以测出距离
//========================================================================================
#include <SPCE061A.h>
#define M_KEY_ENTER 0x0001 //按键 进行一次测量
#define M_KEY_BACK 0x0006 //查询按键,向后查询
#define M_KEY_FROND 0x0007 //查询按键,向前查询
#define M_LCD_SHOW_DOT 0x0008 //LCD显示小数点给p+9
#define M_LCD_SHOW_SET 0x0001 //LCD显示正常标识p+10
unsigned int uiIOB_20Hz_flag; //IOB01口(即20Hz方波输出口)的状态标识
unsigned int uiEXT_EN_flag; //外部中断使能标识位
unsigned int uiMeasure_Index; //当前测量的次数
unsigned int uiResult[4]; //保存测四次测量结果的缓存区
extern unsigned int uiRS_ReciveFlag;
extern unsigned int uiTX_Buff[5]; //发送数据缓冲区
//用于液晶显示及扫键的
extern void InitIsr(void);
extern void InitSPL10A(void);
extern void RefreshLCD(void);
extern CheckKeypad(void);
extern DisplayBuffer;
unsigned int *p; //指向显示缓冲区的指针
//......end
void User_Delay(unsigned int iTimers);
void US_Send200us(void);
void BeginMeasure(void);
int main()
{
__asm("INT OFF");
InitSystem(); //系统初始化
InitData(); //全局数据初始化
p=&DisplayBuffer; //指针P指向显示缓冲区
InitIsr(); //开放1KHz中断,用于100ms定时
InitSPL10A(); //SPL10A初始化
*(p+10) = 0x0001;
RefreshLCD();
// Speech_Resource(17);
//主循环 等待中断
while(1)
{
switch(CheckKeypad()) //扫键,根据按键值进入不同的操作
{
case M_KEY_ENTER: BeginMeasure();break; //进行一次测量
case 2: Speech_Resource(18);Measure_Data_Save();break; //保存测量数据
case 3: break;
case 4: break;
case 5: break;
case 6: Speech_Resource(18);Measure_Data_Read(0);break; //向后查询测量数据
case 7: Speech_Resource(18);Measure_Data_Read(1);break; //向前查询测量数据
case 8: break;
default: break;
}
if(uiRS_ReciveFlag) //串行口接收到测量命令
{
BeginMeasure(); //启动测量
uiRS_ReciveFlag=0;
}
}
}
//延时程序
//
void User_Delay(unsigned int iTimers)
{
unsigned int i;
for(i=0;i<iTimers;i++)
{
__asm("nop");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -