分页: 18/120 第一页 上页 13 14 15 16 17 18 19 20 21 22 下页 最后页 [ 显示模式: 摘要 | 列表 ]
Mar 24
最近编写的程序已经运行在目标机上,结果发现Graph视图显示不算正常,因为控件只显示了一半。程序本身运行的好好的,可是自动保存程序的时候竟然报错。是程序崩溃的现象,看看崩溃信息,程序是我的程序,但是崩溃模块是cvirte.dll 版本9.0,恍然大悟,目标机上的运行库是手动安装的,不是运行的自己写的程序的发布包,结果当时还手欠,程序是用8.0开发的,运行库是遇见有最新的版本,单独安装了最新的运行库,结果就出现了这样的问题。
直接重装8.0的运行库,提示已经有更高版本运行库已安装,安装不更新。只能在程序管理中通过NI软件管理,先把9.0的运行库卸载,然后才能安装上8.0。这样做之后,一切都正常了,界面显示正常了,程序工作也和我的开发机上一样稳定了,哈哈。
看来NI的东西向下兼容性也不是那么理想呀。
Tags: ,
Mar 23
最近的生活真是辛苦,工作非常忙,而且任务紧,工作压力大,学习上没有什么定性的指标,但是发现自己想学的东西很多,学习压力大。这学期还买了超出预算的数码相机,虽然很喜欢,但是把这个学期的预期空闲钱都透支了,经济压力大。身体越来越不如以往,感情也很受折磨,生活压力大。
总之生活就是很辛苦了。
慢慢调节吧,带着各种能量环,尽量放松的面对一切,保持乐观的生活态度,相信一切都会好起来的。
Mar 21
就是那次感觉压力好大的时候,因为发现原有的逻辑有些混乱,而且没有状态分析问题了。于是颓废一个晚上之后,开始了新的征程。
在重写的这段时间里,同样遇到很多问题,但是心态端正很多,还找出了那个非常变态的unused pin问题,之后的一些逻辑问题也很隐蔽,设置是我没涉及过的东西。这次的逻辑基本是通过Verilog HDV写的,这是新的尝试,里面的问题对我来说都属于稀奇古怪,无法解释的,不过比较幸运的是在关键的时候发现了正确的观察点。而且我的采集卡的SignalTap功能也正常了,为调试带来了极大的方便。
经过这几天的努力,所要求的功能已经全部实现,而且对Verilong有了更深的认识,能成功的实现状态机。
BTW:在状态机中,每个状态对应逻辑操作控制的对象最好相同,否则可能在没有声明处理方法的状态中被优化成意料之外的操作。而且状态机貌似不能在一个时钟周期内完成一次反转,针对两个临近并且以此执行,理论没有延迟的状态都有这个问题。
所以要依靠状态机来进行数字加法等累计操作,感觉是比较不可信的。

之后的工作就是上位机的采集软件的功能还要进一步优化。尤其是显示部分。
Tags: ,
Mar 20
首先要承认的是,在C语言课本中学的文件操作,这里是完全支持的。除此之外,CVI还提供了很多功能强大的文件操作函数。
初衷,在编写数据获取程序时,希望将得到的数据高速自动的存盘,文件名和目录辅以时间信息。
当时的想法是在“日期/时间.dat”的文件中自动记录数据,为保证安全,数据文件达到指定大小后要分包。
在Library Tree窗口中,找到文件操作分支,我自己是不会找的,我会先写个函数,ArrayToFile,然后光标移动到单词中间,按键盘Ctrl+P,这样会自动打开函数参数属性填写界面,而在Librar Tree中,那个相应分支也展开。该分支里面就有我们常用的函数,可以自己熟悉各个函数功能。以ArrayToFile为例,在打开函数属性填写界面的空白处,点击鼠标右键,会弹出函数的详细介绍,如果是点中了某个变量的控件后右键,会打开这个参数的详细要求。这就很方便了,填写好参数后,按Ctrl+i,即可将函数插入或覆盖到在代码文件中光标位置处。这几个快捷方式还是很方便的。
这样,数据保存的基本函数就解决了,但是文件名问题如何解决呢?文件名要依据时间信息,时间如何获得?GetCurrentDateTime (&curTime); 这样就在double型的curTime中保存了系统时间,可惜是数字,不是字符串,东东脑筋找巧妙,在这个函数上Ctrl+p,发现Library Tree中已经给出了处理方式,FormatDateTimeString,可以很好的转化成字符窜,注意C语言里是没有string的,要自己提前准备足够大的char数组。
当时我的程序是这样写的,FormatDateTimeString (curTime, "%Y-%m-%d\\%H:%M:%S.DAT", FileName, 25);结果在执行ArrayToFile的时候返回错误说文件未找到,这是我能预料到的,因为我怀疑它不能自动创建目录,那就先把"\\"去掉,结果执行ArrayToFile的时候直接错掉,还没有明确的错误说明,当时就郁闷了,怀疑是其他参数传错了,还对我的数据类型进行了详细的分析,结果都没问题呀,为了确定是不是保存数据类型问题的时候,我把其他的参数都换成固定的了,结果竟然执行成功。我才恍然大悟,刚才把时间转化成字符窜时的":"是文件名称中是非法字符,果然,修改之后就一切顺利了。
最终函数写成这个样子:
Tags: ,
Mar 20
今天在调试重写的PCI数据采集卡时发现,原本一模一样的PCI接口逻辑就是表现不正常,blast信号比之前的逻辑短了一半,倒是所有的读写时序都变得紧张而且读出数据经常出错。最后在比较两个工程是发现,只有FPGA的unused pin一项As input tri-stated不同,新的逻辑是当时默认的as output to gnd,把这里修改了,当时也没抱什么希望,结果却是逻辑工作正常了。
真的是没有办法解释的。
分页: 18/120 第一页 上页 13 14 15 16 17 18 19 20 21 22 下页 最后页 [ 显示模式: 摘要 | 列表 ]