博文
语法说明(2007-05-28 13:25:00)
摘要:-- 信号扩展:把一个小于"101"的高电平信号扩展成一个"101"周期的信号(间距大于"101"周期)
-- 若在把这个信号经过边沿检测,那么这个就实现把一次高电平扩展成一个"101"周期的信号(间距大于"101"周期))
-- 区别在于,上面的高电平大于"101"周期时,则每"101"周期扩展一次
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity processs is
port(
d : in std_logic;
clk : in std_logic;
q : out std_logic
);
end processs;
------------------------------
architecture vr1 of processs is
signal cn : std_logic_vector(2 downto 0) := "000";
begin
p1:process(clk,d)
begin
if (clk'event and clk='1')then
if(d='1' and cn="000") then
cn <= "101";
elsif(cn>"001")then
cn <= cn-'1';
else
cn <= "000";
end if;
end i......
FFT4 C程序(2007-05-15 11:44:00)
摘要:/* VC 下运行通过 2007。4。26 把radix4中某些层for->while等效 14:51*/
/*****************fft programe*********************/
void rad4(double x[],double y[],double TAB[],int i,int n2,int adr1,int adr2,int adr3)
{
int i1,i2,i3;
double co1,co2,co3,si1,si2,si3;
double r1,r2,r3,r4,s1,s2,s3,s4;
i1=i+n2;i2=i1+n2;i3=i2+n2; /* 数据位置 */
co1=TAB[2*adr1];co2=TAB[2*adr2];co3=TAB[2*adr3]; /* 旋转因子 */
si1=TAB[2*adr1+1];si2=TAB[2*adr2+1];si3=TAB[2*adr3+1];
r1=x[i]+x[i2];r3=x[i]-x[i2];
s1=y[i]+y[i2];s3=y[i]-y[i2];
r2=x[i1]+x[i3];r4=x[i1]-x[i3];
s2=y[i1]+y[i3];s4=y[i1]-y[i3];
x[i]=r1+r2; y[i]=s1+s2;
r2=r1-r2; r1=r3-s4;r3=r3+s4;
s2=s1-s2; s1=s3+r4;s3=s3-r4;
x[i1]=co1*r3+si1*s3;y[i1]=co1*s3-si1*r3;
x[i2]=co2*r2+si2*s2;y[i2]=co2*s2-si2*r2;......
Intel hex 文件格式(2007-04-22 13:42:00)
摘要:
Intel hex 文件常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。
Intel hex 文件全部由可打印的ASCII字符组成(可以用记事本打开),如下例所示:
:2000000012014c75a800e4f508f509780a7a78e4f608dafcd283fcfded240af9a7050dbd81
:2000200000010ced2488ec34ff50edc283e4fcfded240af9e76d7013ed33e43c700d0dbd2a
:2000400000010ced2488ec34ff50e50509e50970020508e50924a8e50834fd50aee4f50874
Intel hex 由一条或多条记录组成,每条记录都由一个冒号“:”打头,其格式如下:
:CCAAAARR...ZZ
其中:
CC
本条记录中的数据字节数
AAAA
本条记录中的数据在存储区中的起始地址
RR
记录类型:
00 数据记录 (data record)
01 结束记录 (end record)
02 段记录 (paragraph record)
03 转移地址记录 (transfer address record)
...
数据域
ZZ
数据域校验和
Intel hex文件记录中的数字都是16进制格式,两个16进制数字代表一个字节。CC域是数据域中的实际字节数,地址、记录类型和......
FFT 算法(2007-04-03 15:27:00)
摘要:/*****************fft programe*********************/
#include "typedef.h"
#include "math.h"
struct compx EE(struct compx b1,struct compx b2)
{
struct compx b3 ;
b3.real=b1.real*b2.real-b1.imag*b2.imag ;
b3.imag=b1.real*b2.imag+b1.imag*b2.real ;
return(b3);
}
void FFT(struct compx*xin,int N)
{
int f,m,nv2,nm1,i,k,j=1,l ;
/*int f,m,nv2,nm1,i,k,j=N/2,l;*/
struct compx v,w,t ;
nv2=N/2 ;
f=N ;
for(m=1;(f=f/2)!=1;m++)
{
;
}
nm1=N-1 ;
/*变址运算*/
for(i=1;i<=nm1;i++)
{
if(i<j)
&nbs......
查找文献(2006-10-28 00:19:00)
摘要:很多人在查找文献,特别是早期的,感觉到有困难,我是学物理的,就我对物理文献的查找,说点自己的心得:
1)用google:在“高级搜索”中输入自己要查的英文文献,文件类型选“pdf”,有时能下到免费的
2)http://www.iop.org/EJ上的最新期刊是免费的
3)http://xxx.itp.ac.cn/上可以找到很多自己中意的文献
4)本国有很多期刊是免费的,比如《物理学报》《Chinese Physics》《Chinese Physics Letter》《中国科学》系列等,可以直接到它的网站上直接下载
在查文献时可以充分利用网上的免费检索,比如:http://www.nstl.gov.cn/index.html(国家科技图书文献中心)等......
函数指针的使用示例(2006-08-08 22:12:00)
摘要:/* 在cfree 下运行 通过 2006。8。8 */
#include <stdio.h>
#include <math.h>
float Sqrt(float n)
{
if(n<0)printf("ERROR!\n");
return sqrt(n);
}
void Operate1(float x,float (*fun)(float y) )
{
printf("%.1f\n", (*fun)(x) );
}
int main(void)
{
Operate1(1.2,Sqrt);
}......
Visual C++学习笔记(2006-08-06 00:09:00)
摘要:MFC文件处理机制
1.永久性对象与序列化
永久性对象:内存中的对象以文件的形式存入存储介质,而从介质中读入时,该对象又能恢复为原来的状态。
序列化:能使对象成为永久性对象的机制。
2.Serialize函数
Serialize函数是CObject类提供的虚函数,凡是希望具有序列化能力的类,都必须以CObject类或其派生类为基类。
由于应用程序的数据一般由文档对象来管理的,每当用户新建,打开或保存文档时,程序就会自动调用文档类对象的Serialize函数。
3.对象的序列化
对象的序列化的操作过程封装成了一个类CArchive,实际上把类信息表跟类对象打包成文件的工作就是由CArchive类的对象在Serialize函数中完成的。
Serialize函数原型:virtual void Serialize(CArchive &ar);
当需要存取或读取一个对象时,必须在Serialize函数中进行。例如某类A为永久化类,具体编码过程如下:
Class A::CObject
{
DECLARE_SERIAL(A); //声明了序列化
private:
int m_X,m_Y;
...
public:
Serialize(CArchive&ar); //重写序列化虚函数
};
IMPLEMENT_SERIAL(A,CObject,1); //实现序列化
重写的序列化函数Serialize的实现:
A::Serialize(CArchive&Aar)
{
if(ar.IsStoring()) //存储数据
{
ar<<m_X;
ar<<m_Y;
}
else //读取数据
{
ar>>m_X;
ar>>m_Y:
}
}
 ......
OpenGL基本框架(2006-08-05 21:25:00)
摘要:摘于:http://cracker007.programfan.com
对于windows下的编程,似乎无论是win32 app还是dll,或者mfc,最重要的,也是最难的,都是那个框架。OpenGL也是如此。好在我已经饱经mfc的洗礼,明白如何下手分析框架。不过发现网上的很多程序框架都不是完全一样,不知道这里有没有什么标准?有些代码段去掉之后也仍然没有问题的。这似乎印证了csdn上的一句话:OpenGL出了错,什么都不会做; DirectX出了错,什么都做的出来。^-^
研究了很多例子之后,我自己总结出了一个最简单、易懂的通用框架,并且给出了重要部分的注释:
/******************************by CRACKER007*******************************/
BOOL CGdlg::InitialPixelFormat() //此函数被后面的CreateRC调用
{
static PIXELFORMATDESCRIPTOR pfd=
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,
0,
0,
0,0,0,0,
32,
0,
0,
 ......
Windows 下的图象编程(2006-08-05 17:28:00)
摘要: Glopen中使用的 GLUT.H文件 http://upload.programfan.com/upfile/200607311626279.zip
Windows环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到5个文件
2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。把解压得到的glut.h放到这个文件夹。
3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。
4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)
第三步,建立一个OpenGL工程
这里以VisualStudio2005为例。
选择File->New->Project,然后选择Win32 Console Application,选择一个名字,然后按OK。
在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。
然后向该工程添加一个代码文件,取名为“OpenGL.c”,注意用.c来作为文件结尾。
搞定了,就跟平时的工程没什么两样的。
http://upload.programfan.com/upfile/200608051725176.rar 这是一个 glopen 的示例程序
......
HTML Elements Reference (2006-08-05 13:00:00)
摘要:
a
表示超链接的起始或目的位置。
acronym
表示取首字母的缩写词。
address
在页面上放置可执行内容。
applet
在页面上放置可执行内容。
area
定义一个客户端图像映射中一个超级链接区域的形状、坐标和关联 URL。
b
指定文本应以粗体显示。
base
指定一个显式 URL 用于解析对于外部源的链接和引用,如图像和样式表。
basefont
设置显示文本时作为默认字体的基础字体值。
bdo
允许作者为选定文本片断禁用双向法则。
bqsound
使页面能够带有背景声音或配音。
biq
指定所含文本要以比当前字体稍大的字体显示。
blocjquote
表示文本中的一段引用语。
body
指明文档主体的开始和结束。
br
插入一个换行符。
button
指定一个容器,其中所含的 HTML 会被显示为一个按钮。
caption
表格的标题,对表格的简单描述。
center
将指定文本和图像居中显示。
cite
用斜体显示标明引文。
code
表示代码范例。
col
说明基于列的表格缺省属性。
colgroup
说明表格中一列或一组列的缺省属性。
comment
表示不可见的注释。防止所包含的文本或者HTML源代码被浏览器解析和显示。......