基于NIOS-II的示波器:PART4 系统调试&测试
2017-05-24 19:05
246 查看
本文记录了在NIOS II上实现示波器的第四部分。
本文主要包括:修改部分BUG,以及测试
本文所有的硬件以及工程参考来自魏坤示波仪,重新实现驱动并重构工程。
其中
当通道选择为
点按水平控制时,选择通过
其中
在之前设计的策略中,
根据不同按键分配不同策略。
即时处理
将
调整触发
其中添加行与列变量,用于一行一行进行显示。
可以将该功能打包成系统输出函数,但后无需此功能,便直接写入到响应部分代码,并打包函数。
函数信号发生器输出
本文主要包括:修改部分BUG,以及测试
本文所有的硬件以及工程参考来自魏坤示波仪,重新实现驱动并重构工程。
version 1.0 界面修改&系统调试&测试
界面修改
在示波器0.1版本中已经说明了界面的编写方法,在确定了该版本的基本功能之后,重新设计界面以及按键如下:其中
s0~s5为下排功能选择按键,其中重要的有:
当通道选择为
CH1时,输入耦合选择的也是
CH1
点按水平控制时,选择通过
s8 s9来调节对应通道的水平轴
其中
s6~s15用来调节参数
s6 s7用来调节触发的
level
s10 ~ s14则按照左边屏幕上的说明操作
部分功能调整
按键中断陷入死循环BUG在之前设计的策略中,
s6~s15由于是用来调节参数,其在按键起来之前持续作用。于是将案件起来的判断放在了处理函数之中。但是中断结束之时对于按键弹起的操作又有单独判断。
根据不同按键分配不同策略。
即时处理
STOP指令
将
STOP指令的处理放到中断中,而非等待系统更新状态之后,这样能够更精准的响应
STOP请求。
if (KEY_DATA == 4) { //等待按键抬起 while (IORD_ALTERA_AVALON_PIO_DATA(KEY_PORT_BASE) != 0x03); //切换暂停和启动模式 if (RUN_STOP_FLAG == 0){ RUN_STOP_FLAG = 1; sprintf((char *) lcd_buffer, " STOP "); display_ascii(322, 16, 0xf800, MENU_FULL_COLOR); } else{ RUN_STOP_FLAG = 0; sprintf((char *) lcd_buffer, " RUN "); display_ascii(332, 16, 0x07e0, MENU_FULL_COLOR); } } else { //正常情况 if (RUN_STOP_FLAG == 0) { if (KEY_DATA != 0xff) { //将KEY_DATA传给CON_DATA CON_DATA = KEY_DATA; CON_FLAG = 1; KEY_DATA = 0xff; } if (!(CON_DATA>=6 && CON_DATA <= 9)) { //等待按键抬起 while (IORD_ALTERA_AVALON_PIO_DATA(KEY_PORT_BASE) != 0x03); } } }
调整触发
level以及
CH1 level时水平轴及时刷新
/* * 函数名:TRIG_CON * 说明 :当输入为1则增加,若输入为1则减少 * 日期:2017-03-27 */ void TRIG_CON(unsigned char flag) { while (IORD_ALTERA_AVALON_PIO_DATA(KEY_PORT_BASE) != 0x03) { if (flag == 1 && TRIG_DATA < 244) TRIG_DATA++; else if (flag == 0 &&TRIG_DATA > 11) TRIG_DATA--; //添加此处 能够及时刷新 DISP_TRIG(TRIG_DATA); //向MEM_CTL模块中写入触发condition IOWR_ALTERA_AVALON_PIO_DATA(TRIG_DATA_BASE, TRIG_DATA); TL_LOOP = 0; delay_ms(150); } }
增加系统初始化输出
在初始化LCD之后,对系统初始化的结果输出,用于跟踪系统的状态。
其中添加行与列变量,用于一行一行进行显示。
可以将该功能打包成系统输出函数,但后无需此功能,便直接写入到响应部分代码,并打包函数。
Version 1.0 版本测试
这里只给出示例测试,其余图片过大,不好上传。正弦波测试
函数信号发生器输出
相关文章推荐
- 基于NIOS-II的示波器:PART3 初步功能实现
- 基于NIOS-II的示波器:PART1 按键&显示屏驱动&界面
- 《PCL点云库学习&VS2010(X64)》Part 5 VTK6.2+VS2013+Qt5.5 测试VTK基于VS2013的Qt程序
- 基于mplayer的开发(PART II && III)
- OpenCV 2.0.0在基于Nios II uClinux系统上的移植
- 基于NIOS-II的示波器:PART2 界面动态显示功能
- [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- ADS7843触摸屏驱动测试
- 基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
- 基于系统真实数据的TUXEDO应用服务器压力测试的研究与实现
- 基于嵌入式的温室测试系统
- 基于虚拟仪器的动、静态参数测试系统
- IBM Rational助您轻松完成基于J2EE的Web应用系统的性能测试和性能优化(四)
- IBM Rational助您轻松完成基于J2EE的Web应用系统的性能测试和性能优化(三)
- 基于Web的系统测试方法
- 笑死俺了!!!!! &lt;基于sinox操作系统公厕收费系统&gt;可行性报告
- 基于Web的系统测试方法
- 转载_基于Web的系统测试方法
- 基于ASP.NET开发网上客观题测试系统
- 基于Web的系统测试方法[转]
- 基于Web的系统测试分析与测试方法(二)