自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (7)
  • 收藏
  • 关注

转载 USB芯片比较

仅在最近两年内,就有几十种新型的USB控制器芯片被推出。然而这又给选择带来举棋不定,不同的USB控制器芯片有不同的性能和特点,以下对一些典型的USB控制器芯片进行分析和比较,供选择时决策参考。    几款新型USB控制器芯片的特性比较    从芯片的构架来划分,市面上所有的USB控制器芯片可以分为不需要外接微处理器的和需要外接微处理器的两类芯片。不需要外接微处理器的芯片又可以分为USB接口

2015-01-25 21:46:08 11244

转载 VCC、 VDD、VEE、VSS之区别

电路设计以及PCB制作中,经常碰见电源符号:VCC、 VDD、VEE、VSS,他们具有什么样的关系那?一、解释  VCC:C=circuit 表示电路的意思, 即接入电路的电压  VDD:D=device 表示器件的意思, 即器件内部的工作电压;  VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压二、说明  1、对于数字电路来说,VCC是电路的供电电压

2015-01-15 19:22:36 1038

转载 Altium Ddesigner的各种栅格(grid)意义及设置

在使用DXP或者Altium Ddesigner画PCB板时,通常需要对一些参数进行设置。包括板层、大小、栅格设置等等。这次我们主要说明一下有关栅格的问题。栅格分为可视栅格(Visible Grid)、捕获栅格(snap grid)、元件放置捕获栅格(Component Grid)、电气栅格(Electrical Grid)。可视栅格:就是编辑过程中看到的就是可视栅格。

2015-01-13 23:54:21 21042

转载 USB通信协议

USB2.0最高传输速度可达480Mb/s。一、四种传输方式a、控制传输方式:配置和控制主机到USB设备的数据传输方式和类型。b、中断传输方式:数据量小,需被及时处理,实时性好,主要用于键盘、鼠标等。c、同步/等时传输方式:用于连接需要连续传输数据且对数据正确性要求不高,而对时间极为敏感的外部设备,如麦克风、喇叭及电话等。以固定的传输速率,连续不断地在主机和USB设

2015-01-04 21:46:52 1111

原创 火石玻璃、冕牌玻璃

光学玻璃作为光学仪器最主要的部件,其性能参数直接影响到镜子的成像质量. 光学玻璃最早按照氧化铅含量划分为冕牌玻璃和火石玻璃,低于3%的为冕牌玻璃,高于3%的为火石玻璃,后来随着玻璃种类的增多改用折射率(refractive index)和色散系数(dispersion)划分,冕牌玻璃折射率通常小于1.6,色散系数(也称阿贝数,数值越大,色散越小)大于50,火石玻璃则相反。       冕牌

2013-01-29 22:53:47 26210 1

原创 OSLO由渐晕设置孔径的源码分析

Optimize->Support Routines->Vignetting->Set Apertures...  源码分析它的功能是给定全视场的子午渐晕去设置面的孔径,及设置相关面的孔径检查,它调用apset(int apset_option, double lav, double uav, int nbr_dgts, int prt_err),下面分析下它的代码/*****

2012-12-13 18:18:48 1784 1

原创 oslo渐晕分析源代码(二)

#define PRECISION 1e-9static intvigchk(double max_pupil)// hlp: OSLO Premium/OSLO Standard// hlp: Routine to find fractional vignetting factors.// hlp: Information is displayed for the current

2012-12-10 18:58:02 769

原创 oslo渐晕分析源代码(一)

OSLO:Optimize->Support Routines->Vignetting->Vignetting analysis  源码分析 char vig_cpy_data {prompt = "Copy vignetting data to field point set?", list = vig_cpy_data_list, default(onprompt) = y}

2012-12-08 18:56:31 1196

原创 win7下,硬盘安装debian

第一、到这个链接http://cdimage.debian.org/debian-cd/6.0.5/i386/iso-cd/,下载debian-6.0.5-i386-CD-1.iso,就下这一个,其他的不要下,当然,这是针对i386架构的,选择与自己的CPU相符的就ok。第二、这个iso文件要放在一个分区的顶层里!用虚拟光驱打开这个iso文件,执行它的setup.exe程序,它会在C盘下产生个

2012-08-31 10:21:08 6064

原创 cscope+Vim的简单配置

以浏览内核代码为例1,生成Cscope数据库cd /usr/src/linuxcscope -Rbq它会生成3个文件:cscope.in.out,cscope.out,cscope.po.out生成的数据库要导入到Vimvim init/main.c:cs add /usr/src/linux/cscope.out /usr/src/linux

2012-08-28 23:30:26 1062

翻译 mount error 12 = Cannot allocate memory

当通过mount.cifs命令对windows下的文件进行映射时,若文件太大,便会产生这种错误,解决方法是:   修改注册表 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize项的值大于等于15,若IRPStackSize项不存在,就新建一个DWORD值,点击弹出窗口

2012-08-28 17:29:16 9764 1

原创 ctags简述

ctags用于为源代码文件生成一个索引或标签文件,以便使这个文件里的代码可被文本编辑器快速定位,如Vim,使得Vim这么个简陋的编辑器也能变成神器。    ctags能为多种语言源文件生成交叉索引表,通过--list-languages和--list-kinds选项能看到其支持的语言。ctags默认以文件名的后缀来判断源文件的语言类型,进而采用相应的映射生成标签,--list-maps选项可展

2012-08-28 15:54:53 1398

原创 vim的关键字补全

除了complete关键字补全,所有补全相关命令都以CTRL-X开始,然后再接与补全类型相关的命令。CTRL-N与CTRL-P在找的的内容中选择的通用的命令,上下选择用的,CTRL-E则是取消选择。(这里的按键都是插入模式下的)1、按行补全    回溯当前文件,寻找匹配以输入字符的行。CTRL-X然后再按CTRL-L,在弹出的窗口中利用CTRL-N与CTRL-P及CTRL-E进行操作。

2012-08-23 17:14:09 7686

原创 vim的折叠、智慧缩排

折叠:        vim里的折叠命令都以z开头,有6种折叠方式:manual,indent,expr,syntax,diff,marker。其中,manual所最基本的,它的命令是通用的,掌握了manual的基本命令,折叠也就差不多了。要确认折叠功能开启:set foldenable。    对折叠基本操作(当前光标所在之折叠):za(切换折叠状态),zc(关闭折叠,就是折叠起来)

2012-08-23 00:33:45 11370

原创 valgrind--memcheck工具命令选项

--leak-check=:如果设为yes或full,在被调程序结束后,valgrind会详细叙述每一个内存泄露情况,默认是summary,只报道发生了几次内存泄露。--show-possibly-lost=:默认是yes。若设为no,则内存泄露检查将不显示那些“possibly lost”块。--leak-resolution=:这个选项设定内存检查工具在检测出多个内存泄露时,如何将这些

2012-08-14 17:14:45 7529

原创 内存泄露检查工具valgrind--通用命令选项

valgrind [valgrind-options] [your-program] [your-program-options]valgrind的底层模拟了一个核心,即一个软件模拟的CPU,被调试的程序就是运行在这个假核心上,此外还包含一系列调试工具。它的工具运行依赖于底层的核心,由于是模块化架构,工具可单独开发,只要与核心的版本匹配即可。它的默认工具是memcheck,通过--to

2012-08-08 17:52:39 9303

原创 Linux下的代码量计算

利用find  xargs  wc可方便的计算出某个目录下源文件的代码量find sourcecode_dir_path -type f -name "*.c" -print0 | xargs -0 wc -l-print0选项使得find找到的目标文件名用'\0'分割xargs的-0选项用'\0'分隔符从find的结果中提取参数,然后传给wc计算快速查看一个命令的帮助文档

2012-08-01 17:04:54 1082

转载 友元

友元函数和友元类        采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检

2012-07-17 13:44:53 2080

转载 局部类与嵌套类

局部类  在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对象无关。局部类不能被外部所继承。在定义局部类时需要注意:局部类中不能说明静态成员函数,并且所有成员函数都必须定义在类体内。在实践中,局部类是很少使用的。下面是一个局部类的例子。  int a;  void fun() {      s

2012-07-12 14:35:07 483

转载 C++命名空间

在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域。1. 作用域与命名空间与命名空间相关的概念有:声明域(declaration region)——

2012-07-12 14:06:42 711

转载 终端--转义字符

真实的硬件终端设备由键盘和显示器组成,用于与远程主机(计算机)进行通信。除了与主机距离比较远(在隔壁房间或者在其它城市)以外,它的使用方式与一台个人计算机没有什么区别。程序是在主机上被执行,但结果是显示在终端屏幕上。终端通常仅限于显示接收到的信息以及在键盘上输入发送给主机的信息。功能单一的终端设备在上世纪70年代和80年代比较盛行。人们在其上编制程序、运行程序、编写文档或发出打印命令等。终

2012-06-27 09:30:31 2831

转载 statusline

VIM学习笔记 状态行(statusline)默认的状态行,左侧显示当前打开的文件名,右侧显示当前所处的行列位置。当你执行Vim命令时,状态行将消失并显示命令输入及输出。通常状态行用反色显示。你可以通过修改highlight选项中的s字符来改变。例如,sb设置为粗体字。如果状态行没有启用高亮 (sn),那么字符^表示当前窗口,字符=表示其它窗口。如果支持鼠标并且已经通过设置mo

2012-05-31 16:24:05 10396

转载 Linux sort

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbananaapplepearoran

2012-03-19 12:00:37 526

转载 man显示命令帮助时,里面的SYNOPSIS部分释意

Regarding the route command, it is a little intimidating, but take it apart and analyze it. First, realize that text not in any sort of special punctuation isrequired.Anything in square brackets ( [

2012-03-14 22:27:39 1790

转载 stty中文说明

stty - 改变并打印终端行设置  总览stty [-F device] [--file=device] [SETTING]...stty [-F device] [--file=device] [-a|--all]stty [-F device] [--file=device] [-g|--save] 描述 打印或改变终端属性.-a, --all

2012-03-14 15:51:41 940

转载 Linux tput

什么是 tput?tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。什么是 terminfo 数据库?UNIX 系统上的 terminfo 数据库用于定义终端和打印机的属性及功能,包括各设备(例如,终端和打印机)的行数和列数以及要发送至该设备的文本的属性

2012-03-14 15:44:28 12002

转载 保护模式 对CPL,RPL,DPL 的总结

先说下特权级的概念,在保护模式下,系统依靠特权级来实施代码和数据的保护,相当于权限啦。特权级共有4 个级别,0,1,2,3,数字越小表示权限越高。如图:较为核心的代码和数据放在较高(靠内)的层级中,处理器用此来防止较低特权的任务在不被允许的情况下访问处于高特权级的段。为了防止概念混淆,我们不用特权级大小来说明,改为内层(高),外层(低)来讲。特权级有3 种:CPL,DPL

2012-02-19 16:07:30 4088

转载 嵌入式面试题

上个星期,去深圳一家搞ARM开发的公司面试,HR叫我做了一份卷子,里面都是C编程,心中暗喜,因为这些题基本上都在程序员面试宝典里见过。后来回到学校,在网上搜索,原来这些题都是嵌入式工程师的经典面试题目,很多网站上都可以找得到。现把他贴出来,附上网上的答案,跟大家分享,因为这些题实在太经典了。预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表

2012-02-18 22:40:53 716

原创 深入理解计算机系统有感

决定舍弃本专业,投身于昔日相好之敲代码,既然要以此为事业,看来有必要当本专业般系统的修炼下,是的,这使我选择了《Computer Systems》,果然是本绝世好书,它这中文版的也是相当的棒,厚度大小与我曾不落案头的那本《光学原理》几乎是绝好的雷同,爱死了!我喜欢看厚书,呵呵,探幽不到底绝不是鄙人风格。IT界一日千里的大涨落大发展着,如同我国那悠悠武侠江湖情,各个门派层出不穷、山头林立,各路豪杰你

2012-01-10 15:34:49 545

原创 关于Ray Operands

OSLO提供另一个光线型评价函数,要比Geniierf简单的多,但是它这里还是用一点小技巧,其实称不上技巧,给人的感觉是多此一举,故弄玄虚。。。首先类似的,弹出参数输入对话框,从其字面容易猜到,这是关于轴上点与一个轴外点的像差项,其五个参数的意义是:Axis fymax是轴上点y

2011-08-17 22:19:33 1135

原创 关于OSLO光线型评价函数源码分析

如同我学习编程一样,什么都想知道个究竟,最近算是深入学习OSLO光学设计软件,选择你,是因为你很透明,你能让我知道你干了什么,也能可以让我想让你干什么你就干什么,你是光软的VC++,连自带的CCL编程语言都是那么让我亲切,真想从内心里说,爱死你了,我很幸福的将赌注押在你身上了,也算不枉费我花那么多时间去构建那些繁琐的光学设计理论。。。现在用到你自带的很牛逼的光学型评价函数了,你很干净利落,产生该一

2011-08-17 00:51:49 1109

原创 关于Ratio Button

      VC++通用控件Ratio Button,其Group属性很有意思,假如在对话框上拖了几个Ratio,将第一个Ratio设为Group属性,则自此Ratio以下的所有Ratio将被视为一组,即在此组中只能选中一个,直到遇到下一个具有Group属性的Ratio,在一组中的Ratio们若要关联变量的话(vale类型的)就只能关联一个了;不过,这里还有个问题,就是这个自具有Group属性Ra

2011-06-23 22:33:00 3160

转载 序列化的文件双击无法打开,出错,由此查得一些如下东东

<br />CCommandLineInfo详解 和 ProcessShellCommand(cmdInfo)函数功能<br />在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢,我差了很多资料终于使其漏出庐山真面目。 <br />CCommandLineInfo cmdInfo;//定义命令行 <br />ParseCommandLine(cmdInfo);//解析命令行 <br />// 调度在命令行中指定的命令。如果 <br /

2011-05-26 18:57:00 822

原创 如何改变VC6文档程序默认的打开文件对话框

      为了让VC6写出的程序也能与时俱进,其他的GUI且不说,单是这个打开文件对话框就得动下小手术,怎么说也得跟上XP系统的外观吧!但手术的前提是,不能影响文档文件打开后的一些序列化操作,这种要求就是当然不能随便给“打开”弄个命令相应,重新跳出个花哨的文件打开对话框,得弄出MFC对其处理的来龙去脉,经过简单的文件搜索,其脉络如下:      MFC默认处理“打开”菜单命令是CWinApp::OnFileOpen(),除此以外的文档关闭、保存等都是CDocument里的命令函数,为何这个打开要用CWin

2011-05-25 15:51:00 1693

转载 改变窗口属性

在窗口创建之前完成之前改变窗口属性MFC中通过重写PreCreateWindow()  虚函数改变AppWizard生成的窗口的默认属性①通过改变PreCreateWindow()函数的CREATSTRUCT来改变。typedef     struct     tagCREATESTRUCT {   LPVOID    lpCreateParams;  HANDLE    hInstance;   //实例 HMENU     hMenu;    //窗口菜单 HWND      hwndParent; /

2011-05-18 10:34:00 3969

转载 由CHandleMap::RemoveHandle异常学到的

<br />在Windows体系中,很多对象都是以句柄的形式展示给开发人员的。比如窗口句柄(HWND),绘图设备(HDC)等等。然后大部分的API函数则围绕这些句柄做文章。比如ShowWindow,SetWindowText,TextOut等等。这些API函数的第一个参数通常就是句柄了。但是在C++体系中,这种对于事物细节的访问,往往是有违其封装精神的。因此MFC做了很多的封装类,来隐藏这些细节。应运而生就是CWnd,CDC等类。通过这些类暴露的方法,可以直接对句柄做操作,而又可以不去关心他。<br />不

2011-05-13 10:19:00 1897

转载 VC中基于 Windows 的精确定时

  在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位 机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精确定时操作。  众所周知,Windows 是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。 这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列 中的消息就暂时被挂起,得不到实时处理。因此,不能简单地通过Windows消息引发一个对定时要求 严格的

2011-03-27 21:53:00 547

转载 GDI对象的使用和防止资源泄露

最近的项目在绘制大量采集到的数据时,会有内存泄露的致程序崩溃的情况,反复推测后可能是GDI对象的释放问题,现在网上搜取如下经验,应该很有帮助GDI对象的使用和防止资源泄露在windows系列上做编程,gdi是一个很重要的技术点,有很多程序在运行多次后出现异常,除了众所周知的内存泄露以外,gdi资源泄露也是一个很直接的原因.今天就把我自己在编程中总结的一些经验给大家分享,欢迎高手补充. 1.Create出来的gdi对象,一定要用DeleteObject来释放,释放顺序是先Create的后释放,后Create的

2010-11-28 00:00:00 1060

原创 步进电机

最近要控制步进电机,算是学习笔记吧一体化步进电机驱动器一体化步进电机微型驱动控制器选型快速指南   简介   现代社会分工日益细化。不论企业还是用户,只有专注于最擅长的工作才能使利益最大化。步进电机的用户多数不研究电机的控制和优化,而是将其应用于某个场合。基于这点,国外开始盛行一体化步进系统,即将步进电机、反馈装置、驱动放大器、运动控制器组合成一个整体。其优势为:体积小、故障率低、无需匹配电机和驱动控制器,使用简单,系统设计和维护方便,大大减少产品开发时间。   然而国外的一体化步进系统售价高昂,一般在20

2010-10-19 23:44:00 1873

原创 Windows Server 2003 PSDK February 2003 Edition VC6 配置

<br />   前段时间疯狂地在网上搜寻VC6的最后一个SDK,没想到VC6真的是老了,最新的更新都是渺无踪迹。不过经典就是经典,VC6个人觉得还是windows编程领域最轻巧锋利的一把利剑,轻便效率不说,单是让你看着这么一个破旧不堪的老机床,却能锻造出一个个美轮美奂的精美工艺品(牛B花哨的商业软件几乎都靠它),就有理由爱上VC6!<br />   不过,如能使VC6更新以脱离Windows98这骨灰级的系统那是再好不过了。<br />   不过这个2003SDk着实难找,我手头的版本记得是从一个FTP上

2010-10-13 17:34:00 3231 1

仿QQ截图程序 (ScreenShot)源码

原创技术全在里面,有兴趣的可以看下,以共勉。。。

2010-03-31

自编仿qq截图小工具

很实用的小工具,纯粹的个人开发,有兴趣的可以看看。。。

2010-03-29

精通Visual C++图像编程.part4

这是第四卷。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2010-03-15

精通Visual C++图像编程.part3.

系统讲述VC++图像编程,分为四卷,这是第三卷

2010-03-15

精通Visual C++图像编程.part2

系统讲述VC++图像编程,分为四卷,这是第二分卷

2010-03-15

精通VC++图像编程

一本关于VC++图像编程的系统讲述,这是第一分卷,总共有四个分卷

2010-03-15

hookapi成功实例

文件中的test,ts没用,其余都是测试好的,自己写一个简单的客户端程序,调用我得dll即可了,dll的源码全在里面,我hook了TerminateProcess跟OpenProcess,达到关不掉我得进程的目的,调用的时候只要传一个你的进程的id号就ok了,当然依据此例是可以hook掉任何api的

2007-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除