11.1 主界面上的五个按钮
为了方便各个功能的配置,主界面右侧做了五个按钮,用于实现五个不同功能的配置。
代码如下:
/* 创建需要的按钮*************************************************************/
hButton0 = BUTTON_Create(670, 40, 100, 44,GUI_ID_BUTTON0, WM_CF_SHOW);
BUTTON_SetText(hButton0, "Measure");
WM_SetHasTrans(hButton0);
WM_SetCallback(hButton0, _cbButton);
hButton1 = BUTTON_Create(670, 90-1, 100, 44,GUI_ID_BUTTON1, WM_CF_SHOW);
BUTTON_SetText(hButton1, "ADC");
WM_SetHasTrans(hButton1);
WM_SetCallback(hButton1, _cbButton);
hButton2 = BUTTON_Create(670, 140-2, 100, 44,GUI_ID_BUTTON2, WM_CF_SHOW);
BUTTON_SetText(hButton2, "DAC");
WM_SetHasTrans(hButton2);
WM_SetCallback(hButton2, _cbButton);
hButton3 = BUTTON_Create(670, 190-3, 100, 44,GUI_ID_BUTTON3, WM_CF_SHOW);
BUTTON_SetText(hButton3, "Math");
WM_SetHasTrans(hButton3);
WM_SetCallback(hButton3, _cbButton);
hButton4 = BUTTON_Create(670, 240-4, 100, 44,GUI_ID_BUTTON4, WM_CF_SHOW);
BUTTON_SetText(hButton4, "Settings");
WM_SetHasTrans(hButton4);
WM_SetCallback(hButton4, _cbButton);
这些按钮都是创建在桌面窗口上的,点击这些按钮后,会触发桌面窗口回调函数中的按钮消息,从而弹出相应的设置对话框:
/*
*********************************************************************************************************
* 函 数名: _cbBkWin
* 功能说明: 桌面窗口的回调函数
* 形 参:pMsg
* 返 回值: 无
*********************************************************************************************************
*/
static void _cbBkWin(WM_MESSAGE * pMsg)
{
intNCode, Id;
switch(pMsg->MsgId)
{
/* 桌面背景重绘 */
caseWM_PAINT:
DSO_Init(0);
break;
/* 通过设置触发标志来更新一次触发游标的显示*/
caseWM_TIMER:
g_Flag->ucWaveRefresh= 1;
//WM_RestartTimer(pMsg->Data.v,1000);
break;
caseWM_NOTIFY_PARENT:
Id= WM_GetId(pMsg->hWinSrc);
NCode= pMsg->Data.v;
switch(Id)
{
/* 按钮0:打开Measure对话框 */
case GUI_ID_BUTTON0:
switch(NCode)
{
case WM_NOTIFICATION_RELEASED:
DSO_CreateMeasureDlg();
break;
}
break;
/* 按钮1:打开ADC对话框 */
case GUI_ID_BUTTON1:
switch(NCode)
{
case WM_NOTIFICATION_RELEASED:
DSO_CreateAdcDlg();
break;
}
break;
/* 按钮2:打开DAC对话框 */
case GUI_ID_BUTTON2:
switch(NCode)
{
case WM_NOTIFICATION_RELEASED:
DSO_CreateDacDlg();
break;
}
break;
/* 按钮3:打开Math对话框 */
case GUI_ID_BUTTON3:
switch(NCode)
{
caseWM_NOTIFICATION_RELEASED:
DSO_CreateMathDlg();
break;
}
break;
/* 按钮4:打开Settings对话框 */
case GUI_ID_BUTTON4:
switch(NCode)
{
caseWM_NOTIFICATION_RELEASED:
DSO_CreateSettingsDlg();
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
下面分别将这五个对话框所实现的功能为大家做个讲解。
11.2 Measure测量功能
测量界面的效果如下:
当前二代示波器仅支持打对勾的这六种测量值,分别是频率,峰峰值,最大值,最小值,均方根和平均值。其它的测量选项还不支持,勾选或者取消对主界面没有影响。而支持的这六个测量功能取消勾选的话,主界面对应的数值将停止更新,勾选上将继续更新。
测量对话框的创建也比较简单,采用非阻塞方式创建:
/*
*********************************************************************************************************
* 函 数名: DSO_CreateMeasureDlg
* 功能说明: 创建测量对话框
* 形 参:无
* 返 回值: 无
*********************************************************************************************************
*/
WM_HWIN DSO_CreateMeasureDlg(void)
{
WM_HWINhWin;
hWin =GUI_CreateDialogBox(_aDialogCreateMeasure,
GUI_COUNTOF(_aDialogCreateMeasure),
_cbDialogMeasure,
WM_HBKWIN,
0,
0);
returnhWin;
}
11.3 ADC电压测量功能
ADC电压测量功能的界面比较简单,就是显示ADC2所采集的电压,并显示电压曲线。
ADC电压测量对话框的创建也比较简单,采用非阻塞方式创建:
/*
*********************************************************************************************************
上一篇:【二代示波器教程】第15章 FreeRTOS操作系统版本二代示波器实现
下一篇:开关电源怎么测试纹波_示波器测试开关电源纹波的方法
推荐阅读最新更新时间:2024-11-10 23:17
推荐帖子
- CE6.0上的EDB数据库可以和服务器的数据库同步吗?请问?
- 如题谢谢各位大师指点迷津。如果微软没做同步功能,那么该如何让它和服务其中数据库同步呢?CE6.0上的EDB数据库可以和服务器的数据库同步吗?请问?请问谁用过SyncFramework?没有用过SyncFramework,帮顶。呵呵,我也来帮顶一下。。我自己再定一下是不是MicrosoftActiveSync?不是ComparingEDBwithSQLServerCEEDBisbasedontheMicrosoftSQLServer2000
- hd12 嵌入式系统
- 【入门贴】MSP430集成开发环境科普
- 在接触到一类MCU的时候我们都很关心开发MCU所需要的开发环境,论坛上也常用网友问到,在这篇帖子里我介绍下MSP430常用的集成开发环境,主要供入门的坛友们有个简单的了解。目前最常用的两个集成开发环境,IARForMSP430和CCS。简单介绍下IARSystem公司 IAR是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试
- wstt 微控制器 MCU
- 千奥行车记录仪拆解-通信模块
- 2015年1月花费500+购入一款行车记录仪,千奥出品。说起行车记录仪,核心功能就是好的广角镜头通过系统写入TF卡,附加功能就是硬按键加显示屏。但是我购买可选附带电池,或者通信模块,我选择的是后者。后来不知怎的无法通过微信公众号或网页读取位置了,然后清晰度也不怎样,关键是太容易出发锁定状态了,所有录像都属于紧急视频,不允许写入新视频了。so去年就换成了小米的行车记录仪。现在来拆解下千奥出品的这款行车记录仪,鉴赏下。首先是产品外观图,很可爱,鸭子的嘴巴就是镜头。发现主机连接过来的只有
- yilonglucky 以拆会友
- 手把手教你开关电源PCB排版
- 手把手教你开关电源PCB排版
- czf0408 电源技术
- EasyARM-RT1052测评汇总
- 测评活动:https://bbs.eeworld.com.cn/elecplay/content/99测评分享:@ID.LODA【EasyARM-RT1052测评】+开箱体验【EasyARM-RT1052测评】+FreeRTOS的移植使用【EasyARM-RT1052测评】+GPIO和外部中断的使用【EasyARM-RT1052测评】+PIT定时功能【EasyARM-RT1052测评】+串口空闲接收实现modbushost【EasyARM-R
- okhxyyo NXP MCU
- CMOS集成电路设计手册
- CMOS集成电路设计手册CMOS集成电路设计手册赞一个非常好的电子书,英文原版,下载保存了,谢谢分享
- liva2022 电路观察室
- ADR525B 2.5 Vout 高精度并联模式电压基准的典型应用
- AEK-MCU-C4MLIT1,用于带有 CAN 收发器的 SPC5 Chorus 4M 汽车微控制器的 MCU 探索板
- ZSR300GTA 3伏可调正电压调节器的典型应用
- MCP1603L 500mA 同步降压稳压器的典型应用
- 用于汽车照明的 10 个 LED 高亮度 LED 驱动器
- 使用 MaxLinear, Inc 的 SPX1004 的参考设计
- 基于阿里云智能的插座(已商用方案分享)
- 用于数据采集系统的 10 位、188KSPS、4 通道 ADC
- LT1764EFE-2.5 3.3 VIN 至 2.5 VOUT LDO 稳压器的典型应用
- 基于TPS40057的大功率同步降压模块
- 第三款5nm手机处理器:三星Exynos 1080问市,单核性能提升1.5倍
- 如今的手机摄像头为什么越来越多?
- Dish联手高通,推进5G RAN平台建设
- 苹果M1芯片MacBook Pro跑分曝光:单核1714,多核6802
- 中芯国际:公司合法合规经营,正和美国方面保持积极沟通
- CSIRO携手Piotrek研发新一代固态锂电池
- 中国智能汽车指数规程更新,首个L2自动驾驶辅助系统规程发布
- Valens推出超高速汽车芯片组 为联网和自动驾驶汽车提供高速数据传输
- KT研发新型定位信息系统 即使GPS性能下降仍为自动驾驶汽车提供精确定位
- Cepton发布最新激光雷达传感器Vista-x120 适用于ADAS和自动应用