zhliao2

风雨兼程,一路向北-------fpga (Keep a quiet heart study)
上一页 1 2 3 4 5 6 ··· 8 下一页

2012年10月29日

quartusII使用notepad++进行文本编译

摘要: 打开quartusII - tool -option -Preferred Text Edit效果如图所示:其中%f用于指定文件名,%l用于指定相应的行数;-n是Notepad++的选项,功能是高亮至某行。原文:http://www.cnblogs.com/yuphone/archive/2011/12/27/2303817.html 阅读全文

posted @ 2012-10-29 11:03 zhliao 阅读(4299) 评论(0) 推荐(0)

2012年10月28日

【转】输入电阻和输出电阻的作用

摘要: 1、三极管的输入电阻(应该是阻抗)是越大越好的,但也要与前级的阻抗匹配,因为这里有点茅盾,就是,在大多数情况下,好的三极管的输出电阻是越小越好的。所以,前后级要匹配才是最好。2、输出电阻越小说明其自己身的损耗就越小,输出带负载的能力越大。输入电阻越大说明其对输入信号的电压和电流要求越低,其对小信号的放大能力越好。3、输入电阻的大小是要依据前级,如果前级是电流源性质的输出,或就是电流型信号源,当然输入电阻越小越好,反之,前级为电压源,而输入电阻还是小的话,恐怕这个三极管就处在截至区了。4、一个输出信号连接到高速示波器上,示波器是50欧姆输入阻抗,这个时候就测不到信号了,原因是相对于50欧姆的阻抗 阅读全文

posted @ 2012-10-28 10:57 zhliao 阅读(1378) 评论(0) 推荐(0)

2012年9月6日

亲,大三了,你准备好了吗

摘要: 大三了,呜呜,时间过得真快,一转眼2年就这么过去了,想想自己,咦,多少知识也是没有学会多少哦,话又说回来,并不是我不想学不好,其实大二这一年来,我是挺努力的,人不可能是十全十美的,但是也也不能没有追求完美的一个心吧,扯得远了,嘿嘿.一直以来,我都是想努力的提升自己的技术实力的,但是效果不是很明显,就比如说学习fpga来说吧,自己不知道学了N久才有点入门,才有了这么的一点概念而已,为什么为什么会这样,总是这样的反问自己,为什么为什么,有时候想的也挺崩溃的,有一段时间感觉自己在fpga上面有点儿感觉了,没过多久,又崩溃了,哎呀呀,,,,(::>_<:: ,还好没有达到网上说学习的最高境 阅读全文

posted @ 2012-09-06 23:26 zhliao 阅读(402) 评论(0) 推荐(0)

2012年8月12日

时间片轮询多任务操作系统( TinyOS51 V1.3 )

摘要: 选自<<项目驱动-单片机应用设计基础>>//注意了://1,消息邮箱中仅能保存一条消息. //2,当初始值消息邮箱时,一定要给消息邮箱赋初值,并将等待消息邮箱的任务列表清空//任务标志( tiny_os_51_core.c )#define __TN_TASK_FLG_DEL 0x00 //任务被删除标志#define __TN_TASK_FLG_RDY 0x01 //任务就绪标志#define __TN_TASK_FLG_DLY 0x02 //任务延时标志#define __TN_TASK_FLG_SEM ... 阅读全文

posted @ 2012-08-12 22:05 zhliao 阅读(1194) 评论(1) 推荐(0)
时间片轮询多任务操作系统( TinyOS51 V1.2 )

摘要: 选自<<项目驱动-单片机应用设计基础>>//注意了:在初始化信号量时一定要为其赋初值,并将获得信号量事件列表清空//事件的返回值( tiny_os_51.h )#define TN_OS_OK 0 //正确#define TN_OS_PAR_ERR -1 //参数错误#define TN_OS_TIME_OUT -2 //等待时间到#define TN_OS_EVENT_FULL -3 //事件已满//由于任务在同一时刻只能等待一个事件,因此,可... 阅读全文

posted @ 2012-08-12 20:48 zhliao 阅读(1419) 评论(0) 推荐(0)

2012年8月11日

时间片轮询多任务操作系统( TinyOS51 V1.1 )

摘要: 选自<<项目驱动-单片机应用设计基础>>/* ** 一般来说,操作系统的调度算法主要有三类:时间片轮询,优先级与带优先级的时间片轮询调度** 不是任务主动放弃CPU而造成的任务调用就是抢占式任务调度** 在使用时间片轮询调度算法的操作系统中,会在2种情况下进行任务切换** (1)任务在调用操作系统提供的"等待"类服务( 如延时,获得信号量,等待消息等 ),会主动请求调度** (2)对于完全基于优先级调度算法的操作系统来说,调用任何一个系统函数,或任何一个中断服务程序** 结束时,都可能让高优先级的任务处于... 阅读全文

posted @ 2012-08-11 14:45 zhliao 阅读(5717) 评论(0) 推荐(0)
协作式多任务操作系统

摘要: 选自<<项目驱动-单片机应用设计基础>>//任务句柄的的定义( tiny_os_51.h )typedef charTN_OS_HANDLE;//任务状态字的定义#define __TN_TASK_FLG_DEL 0x00 //任务被删除#define __TN_TASK_FLG_RDY 0x01 //任务就绪//任务控制块struct tn_os_tcb{ jmp_buf jbTaskContext; //用于存储上下文信息 unsigned char ucTaskStat; ... 阅读全文

posted @ 2012-08-11 00:38 zhliao 阅读(1999) 评论(0) 推荐(0)

2012年8月9日

setjmp() longjmp() setTaskJmp()

摘要: 选自<<项目驱动-单片机应用设计基础>>//空指针/***空指针既不会指向任何对象或函数,也不是任何对象或函数的地址**一般来说,未初始化的指针,实际上是非法的指针,不能使用,未初始**化的指针完全有可能指向任何地方,从而导致程序无法判断它为非法**指针**注意了:空指针和未初始化的指针是完全不同的两个概念*///定义了pucBuf为unsigned char 类型指针并初始化为空指针data unsigned char *pucBuf = ( data void * )0; //setjmp()定义extern unsigned char bp; //编译器为简化重入 阅读全文

posted @ 2012-08-09 13:02 zhliao 阅读(498) 评论(0) 推荐(0)

2012年8月1日

简单的位操作

摘要: i >>1 : 表示i / 2。右移操作也代表了“i / j^2”(j是右移次数)。假设8 >> 2,亦即8 / 2^2等于2。8 >> 3,亦即8 / 2^3等于1。 阅读全文

posted @ 2012-08-01 22:25 zhliao 阅读(255) 评论(0) 推荐(0)

2012年7月18日

波特率,位周期

摘要: 以下以9600bps为讲解对象,其他的波特率算法是一样的波特率"9600bps"表示每秒可以传输9600位一个位的周期 = 1/bps = 1/9600 = 0.000104166666666667那么一秒钟内可以传输1/0.00114583333333334=872.727272727268872.727272727268个帧数据。当然这只是在数字上计算出来而已,但是实际上还有许多看不见的延迟因数。 阅读全文

posted @ 2012-07-18 14:04 zhliao 阅读(4512) 评论(1) 推荐(0)

2012年7月17日

关于分频,帧的小常识

摘要: 如果640x480x60Hz的主要时钟频率是25.175Mhz的话,亦即1个列像素是39.7ns,那么可以用更高的源时钟是求得39.7ns的定时。说得简单一点就是配置一个定时器。假设源时钟是100Mhz,定时器的计数x是:x = 0.0397us / ( 1/100MHz )us = 3.97 = 4说明了用100MHz的计数要达到39.7ns就要大约计数4次800x600x60Hz最后一字的“60Hz”,表示该显示标准,在1秒内可以显示60帧图像(一帧等于一副图像)。以800x600x60Hz为说明对象我们知道1个行像素等于1056个列像素,而一个列像素需要25ns。换一句话说,一“帧”的图 阅读全文

posted @ 2012-07-17 16:18 zhliao 阅读(386) 评论(0) 推荐(0)
怎么使用PLL(20MHz倍频40MHz)

摘要: 步骤如下图所示:1--在tool--MegaWizard Plug-In Manager2--点击Creat a new custom megafunction variation3--点击I0-ALTPLL,选择Verilog HDL,Cyclone IV E, 在FPGA_ceshi后命名pll_module,Z最后点击Next4--选取输入晶振为20MHz,点击Next5--取消划线部分打勾的,点击Next6--点击Next知道出现如下图表,选取Clock multiplication factor 为2,说明要倍频为2,相应的输出频率就变为了40MHz,点击Next7--一直点击Nex 阅读全文

posted @ 2012-07-17 11:59 zhliao 阅读(950) 评论(0) 推荐(0)

2012年7月15日

a[ i ][ j ]中的不同表达有不同意义的地址概念( a + 1, a[ 1 ]等 )

摘要: 有二维数组a[ i ][ j ],一下都满足二维数组的条件a 二维数组名,指向一维数组a[ 0 ],即0行的首地址a[ 0 ], *( a + 0 ), *a 0行0列元素的地址 a + 1, &a[ 1 ] 1行首地址a[ 1 ], *( a + 1 ) 1行0列元素a[ 1 ][ 0 ]的地址a[ 1 ] + 2, *( a + 1 ) + 2, &a[ 1 ][ 2 ] 1行两列元素a[ 1 ][ 2 ]的地址*( a[ 1 ] + 2 ... 阅读全文

posted @ 2012-07-15 14:27 zhliao 阅读(427) 评论(0) 推荐(0)
字符串与指针

摘要: //以两种方法将字符串a复制到位字符串b//一:下标方法,字符串是以'\0'结束的,所以最后别忘了把'\0'加回去# include <stdio.h>int main ( void ){ char a[] = "I am boy.", b[ 20 ], *p1, *p2; int i; p1 = a; p2 = b; for ( ; *p1 != '\0'; p1 ++, p2 ++ ) *p2 = *p1; *p2 = '\0'; printf ( "string a is:%s\n& 阅读全文

posted @ 2012-07-15 14:14 zhliao 阅读(263) 评论(0) 推荐(0)
指向多维数组的指针变量(int *p 和 int ( *p )[ N ])

摘要: int a[ 4 ];a有四个元素,每个元素为整型int ( *p )[ 4 ]; //4为二维是在的后面的一个数*p有4个元素,每个元素为整型,也就是说p所指的的对象有4个整型元素的数组即p是一维数组的指针( p只是指向一个包含有4个元素的一维数组,p的值就是该一维数组的起始地址 )程序数组为int a[3][4] = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23 };经常搞混淆int *p和int ( *p )[ 4 ]可参考以下程序# include <stdio.h>int main ( void ){ int a[3][4] = 阅读全文

posted @ 2012-07-15 14:14 zhliao 阅读(598) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 8 下一页