摘要:
QT库结构 Qt图形库是一个组织严谨的C++类库,其结构如图所示细说Qt库 Qt类库中包含了上百个类,结构十分复杂,上图展示了Qt_3.2类库的基本结构。 Qt类库中的类可以分成两种类型:一种是直接或者继承自Qt类另一种是独立的,不从任何类集成 独立的类在Qt库中一般用来完成独立的功能,例如操作XML文件的QXmlReader类。 直接从从Qt类继承的类主要可以分成QObject类和QEvent类。QObject类是所有应用组件的基类,QEvent类是所有QT事件响应类的基类。其他的还有QCursor、QPen、QTab等类描述的窗口组件可以在窗体的任意地方出现,因此直接从Qt基类继... 阅读全文
摘要:
概述 编译的目的是把人书写的高级语言代码翻译成目标程序的语言处理程序,编译用的程序(例如gcc)称为编译系统。 一个编译系统把一个源程序翻译成目标程序的工作过程分为5个阶段:词法分析、语法分析、中间代码生成、代码优化和目标代码生成。 其中主要阶段是词法分析和语法分析,也可以称为源代码分析,分析过程中发现有语法错误,给出提示信息。词法分析 词法分析的目的是处理源代码中的单词。 词法分析程序按照从左到右的顺序wyuq 扫描源代码,生成单词对应的符号,把字符描述的程序转换为符号描述的中间程序。 词法分析程序也称做词法扫描器。 词法分析过程可以用手工构造和自动生成两种方法。手工构造可以使... 阅读全文
摘要:
题目概述:Anagrams by Stack How can anagrams result from sequences of stack operations? There are two sequences of stack operators which can convert TROT ... 阅读全文
摘要:
功能 LCD显示字汉字,字符和图片说明 汉字,字符和图片需要用相应的取模软件得到相应的c文件,然后包含到工程中主要代码1)绘制背景void Brush_ U32 c){ int x,y ; for( y = 0 ; y >1; } mask=0x80; //掩码 buffer=ch[i*2+1]; //提取一行的第二个字节 for(j=0;j>1; } }}3)字符绘制void ... 阅读全文
摘要:
功能 裸机程序,实现LCD显示数字时钟主要代码1)背景绘制void Brush_ U32 c){ int x,y ; for ( y = 0 ; y >1; //移位,为判断下一位作准备 } /*汉字右半部分*/ mask=0x80; //从bit7开始判断 buffer=ch[i*2+1]; //提取一行的第二个字节 /*一个字节有8个位,每一位代表字模数据对应的点是否描颜色*/ for... 阅读全文
摘要:
功能 通过GPIO,实现按键1点亮LED1,按键2点亮LED2……说明 1)因为2440的按键只涉及行,所以在扫描按键时比2410简单了很多 2)在进行移位操作之前,必须进行数据寄存器的初始化,否则会出错(硬件特性)源码/**********************************************************************************函数名:main()*****功 能:通过GPIO,实现按键1点亮LED1,按键2点亮LED2*****说 明:*************************************************.. 阅读全文
摘要:
题目概述:Crashing Balloon On every June 1st, the Children's Day, there will be a game named "crashing balloon" on TV. The rule is very simple. On the gr... 阅读全文
摘要:
题目概述:Fire Net Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representin... 阅读全文
摘要:
Preface 因为最近一直在搞硬件的东西,所以暂时没管自己专业的东西,昨晚一童鞋问到一个网络里面的算法时,突然发现自己的强项,已然不是强项了,于是总结了一下 硬件的东西,其实是比较死的东西(对于目前的我来说),无非就是数电和模电里面的原理,对于硬件原理来说,更多的是0和1,对于某些人来说,0和1显得那么神秘,但是,它也在很大程度上,限制着人们的思维。 相比之下,软件的东西,就比较灵活了,写程序,一个结果,可以有n种表达方式,不同的表达方式,便有不同的执行效率;这在某种程度上,可以发散人的思维。 虽然走到嵌入式的道路上,但是软件仍然我的优势,在弥补自己的弱势的时候,也不能淡化自己的优势... 阅读全文
摘要:
A/D转换器 A/D转换器,又称模/数转换器,顾名思义,就是把模拟信号数字化。 由于系统的实际处理对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别和处理这些信号,必须首先将这些模拟信号转换成数字信号,这就必须用到A/D转换器。A/D转换器的一般步骤 模拟信号进行A/D转换的时候,从启动转换到转换结束输出数字量,需要一定的转换时间,在这个转换时间内,模拟信号要基本保持不变。否则转换精度没有保证,特别当输入信号频率较高时,会赞成很大的转换误差。要防止这种误差的产生,必须在A/D转换开始时将输入信号的电平保持住,而在A/D转换结束后,又能跟踪输入信号的变化。因此... 阅读全文
摘要:
PWM定时器 PWN:脉冲宽度调制 每个定时器都有一个专用的由定时器时钟驱动的16位递减计数器。当递减计数器的计数值达到0的时候,就会产生定时中断请求来通知CPU定时器操作完成。当定时器递减计数器达到0的时候,相应的TCNTBn的值会自动重载到递减计数器中以继续下次操作。 但是,如果定时器停止了,比如在定时器运行时清除TCON中的定时器使能位,TCNTBn的值不会被重载到递减计数器中 TCMPBn的值用于脉冲宽度调制(PWM)。当定时器的递减计数器的值和比较寄存器的值相匹配的时候,定时器控制逻辑将改变输出电平。因此,比较寄存器决定了PWM输出的开关时间。定时吕控制寄存器(TCON) ... 阅读全文
摘要:
异步通信 所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本是同步的。异步串行通信的特点可以概括如下 1)以字符为单位传送信息 2)相邻两字符间的间隔是任意长 3)因为一个字符中的比特们长度有限,所以需要的接收时钟和发送时钟只要相近就可以 4)异步方式的特点简单地说就是:字符间异步,字符内部各位同步异步串行方式的数据格式 1)1位起始位,规定为低电平0 2)5~8位数据位,即要传送的有效信息 3)1位奇偶校验位 4)1~2位停止位,规定为高电平1同步串行 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步 阅读全文
摘要:
目的 为了更好地掌握S3C2410中断的原理及中断程序的编写。 内容利用S3C2410的外部中断0和外部中断1实现两个按键功能原理 本次选择的是外部中断EXTINT0和EXTINT11。中断的产生分别来自按钮SB1202和SB1203,当按钮按下时,EXTINT0(对应管脚GPF0)或EXTINT11(对应管脚GPG3)和地连接,输入低电平,从而向CPU发出中断请求。 当CPU受理后,进入相应的中断服务程序,通过超级终端的主窗口显示当前进入的中断号。程序 1 #include "2410addr.h"//这头文件找了好久啊,mdk里面没有,后来在一个实例中提取出来的 2 3 阅读全文
摘要:
1.函数名单词之间用_隔开,每一个字母大写 Uart_Printf() //这个由三星的TEST风格延续下来,因此没有参数时,必须加void,否则ADS会编译报警 void Test_Keyscan(void);2.寄存器名前要带小写的r。表示寄存器,大写名称要与DataSheet标的名一致..其宽度要根据硬件有效位来定义,其中必须带volatile关键字 有效位大于16位 #define rGPMCON (*(volatile unsigned *)(0x7F008820)) 有效位小于等于16位,大于8位 #define rWTCON (*(volatile ... 阅读全文
摘要:
ARM处理器7种类型异常 按优先级从高到低的排列如下: 复位异常(Reset) 数据异常(Date Abort) 快速中断异常(FIQ) 外部中断异常(IRQ) 预取异常(Prefetch Abort) 软件中断异常(SWI) 未定义指令异常(Underfined instruction)当异常发生时 处理器会把PC设置为一个特定的存储器地址。 这一地址放在被称为向量表(vector table)的特定地址范围内。 向量表的入口是一些跳转指令,跳转到专门处理某个异常或中断的子程序。 当异常发生时,分组寄存器r14和SPSR用于保存处理器状态。ARM异常处理器模式 每一... 阅读全文
摘要:
GPIO Gerneral-Purpose IO ports,即通用IO口。 在嵌入式系统中常常有数量众多,但是却比较简单的外部设备/电路。 对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用做输入信号。 许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如控制某个LED灯亮与灭;或者通过获取某个管脚的电平属性来达到判断外围设备的状态。 对这些设备/电路的控制,使用传统的串行口或并行口都不合适,所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。 接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。 数据寄... 阅读全文
摘要:
Preface 把学校的事忙得差不多了,又可以搞这板子了。。。 minicom的使用操作,前面已经写得很详细,但是下载程序到开发板的过程中,还是有些地方是需要注意的,另外第一次接触,少不了会遇上各种问题Step1 连结好开发板与PC机的串口线与USB下载线Step2 给板子上电,在minicom中... 阅读全文
摘要:
Preface 前面编译linux内核的时候,用各种cross版本都不行啊,真是纠结,于是就想着自己也要会编译交叉工具的方法,然后各种尝试,各种问题啊,最后还是没解决(还有其它事情),步骤我都走熟了,记下来吧Preparationroot@lcw:/home/mystery/cross_tool... 阅读全文
摘要:
小续第一次接触内核的东西,有点小激动啊激动归激动,这实验还是要继续做下去,书上三两句话就带过去的,剩下的就留给我们了,着实考验动手能力啊当编译过内核之后,发现这个过程也不复杂嘛(复杂的是内核的配置),不过对于没接触过的人来说,也能够折腾一段时间的了,所以记下这个过程,其中也有些需要注意的地方,然后给... 阅读全文
摘要:
小续 嵌入式开发的运行环境是目标板,而开发环境是宿主机。因此需要把宿主机中经过编译之后的可执行文件下载到目标板上去。需要注意的是,这里所讲的下载是下载到目标机中的SDRAM 常见的下载方式有网络下载(如TFTP、FTP等方式)、串口下载、USB下载等 当用TFTP下载时,需要在宿主机上开启TFTP服... 阅读全文
摘要:
磁盘即是硬盘,由许多块盘片(盘面)组成,每个盘片的上下两面都涂有磁粉,磁化后可以存储信息数据。每个盘片的上下两面都安装有磁头,磁头被安装在梳状的可以做直线运动的小车上以便寻道,每个盘面被格式化成有若干条磁道,这些磁道是同心圆。并规定最外面的磁道是0磁道,次外层是1磁道,每个磁道又被分成若干个扇区... 阅读全文
摘要:
小续看了下时间,10年写的了批处理是个很强大的东西,现在任何一个工具都包含这个功能,只是被工具给封闭起来了怀念下dos时代的批处理啊rem即高级语言中的注释的意思,能看懂每个程序的作用了吧@echo offrem …………………call命令的应用type a.txtcall c.batecho 现在... 阅读全文
摘要:
那些年,我们迷恋的命令(一)那些年,我们迷恋的命令(二)Linux系统下基本命令Linux系统下基本命令: 要区分大小写 uname 显示版本信息(同win2K的 ver) dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir) pwd 查询当前所在的目录位置 cd cd... 阅读全文
摘要:
小续还记得,那些年玩hack的朋友吗,现在玩这个的,基本都是小孩子了(俗称脚本小子)。还记得,那些年敲过的命令吗,现在的孩子,都用工具了(叫工具党)。孩子们,健康的网络环境需要大家一起去维护。命令本身,其实是很有用的,就看你怎么使用它了。不要把我当hacker看,我只是个计算机爱好者!怀念一下,大... 阅读全文
摘要:
html特效代码(一)html特效代码(二)图片漂浮广告代码围绕鼠标的立体旋转文字围绕鼠标的立体旋转文字文本特效-打字效果的网站公告网页特效-文本特效-打字效果的网站公告与之间-->百晓生说明:无法屏蔽的网页右下角浮动窗口无法屏蔽的网页右下角浮动窗口>_>×网页制作大宝库网页制作大宝库dabaoku... 阅读全文
摘要:
小续还记得当初和八哥一起制作百家成员chm电子书的时候,各种特效啊,这里收集了一些个人比较喜欢的html特效,看个人喜欢了,不喜勿喷啊html特效代码(一)html特效代码(二)3D相册代码斗转星移**********全局按钮复制并粘贴下面的JS代码,放到您的网页,可以在和的之间网页的任意位置放置。... 阅读全文
摘要:
小续 这也是我11年看加密解密整理的一些笔记,因为后面有事,所以这个笔记并不完整,不过也涉及到很多知识了,写给爱好加密解密的朋友 多字节数据是按怎样的顺序存放的呢?实际情况和CPU有关,微处理中的存放顺序有正序和逆序之分。正序(big-endian) 逆序(little-endian) 两种编码的... 阅读全文
摘要:
windows核心编程整理(上)windows核心编程整理(下)线程的堆栈 每当创建一个线程时,系统就会为线程的堆栈(每个线程有他自己的堆栈)保留一个堆栈空间区域,并将一些物理存储器提交给这个以保留的区域 当创建一个线程的堆栈时,系统将会保留一个链接程序的/STACK开关指明的地址空间区域 堆栈区域... 阅读全文
摘要:
小续这是我11年看《windows核心编程》时所作的一些笔记,现整理出来共享给大家 windows核心编程整理(上) windows核心编程整理(下)线程的基础知识进程是不活泼的,进程从来不执行任何东西,进程只是线程的容器线程用于描绘进程中的运行路径每个进程必须拥有一个进入点函数,线程从这个进入点... 阅读全文
摘要:
小续 最近很多人都在问我数据结构和算法的相关问题,对于初学者,貌似听到算法,数据结构什么的,都觉得是比较高深的东西,其实它们并没有想象中的难,只是你还没有一个整体上的把握,还没有习惯站在整体上去思考问题。算法是灵魂,数据结构是包装,语言只是工具,学什么语言并不重要,重要的是思想。这也是如鹏的理念:一通百通。 去年比赛的时候,我看过一些算法,也收集了一些自认为比较有代表性,优秀的算法,在这里整理出来给大家分享一下,希望能够帮助到大家(我也是菜鸟,高手勿喷)整理清单如下:算法的艺术(一):http://infohacker.blog.51cto.com/6751239/1171334算法的艺术.. 阅读全文
摘要:
小续 对于数据结构和算法,都只是思想层面的东西,而在实际运用当中,多数是与系统和文件相联系的,所以对于学习数据结构与算法,可以参照操作系统中一些代码的实现,毕竟那都是经过大牛再三修改得出来的精华。 但据我了解,很多人都一味地去“研究”算法本身去了,算法主要是用来解决问题的,当它们遇到问题时,知道怎么解决,但却不知道从哪里入手,这是很悲剧的一件事情,而实际应用中,大多数操作都和文件相当,所以我这里列了两个文件相关的实例,主要是提醒大家不要忘了学算法的目的,希望能帮助到大家文件连接 编程:实现将命令行中指定的第一个文本文件的内容追加到第二个文件之后。 实例解析: 该实例要求从命令行指定两个... 阅读全文
摘要:
求解线性方程 用高斯(Guass)消去法求解N阶线性方程组Ax=B。 实例解析: 高斯消去法解线性代数方程的基本原理如下。 对于线性方程组: 其中系数矩阵为A,未知量为X,值向量为B。计算的方法分为两步进行。 第1步,消去过程,对于k从0到n -2做以下3步。 从系数矩阵A的第k行、第k列开始的右下角子阵中选取绝对值最大的元素,并通过行交换与列交换把它交换到主元素(即对角线元素)的位置上。 归一法: j=k+1,…..,n-1 消去: j=k+1,…..,n-1 第2步,回代过程。 i=n-2,…..,1,0 最后对解向量中的元素顺序进行... 阅读全文
摘要:
求π的近似算法 用两种方法编程求π的近似值。 实例解析: 1、用“正多边形逼近”的方法求出π的近似值 我国的祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位π值的。 利用圆的内接正六边形边长等于半径特点将边数翻番,做出正十二边形,求出边长,重复这个过程,就可获得所需精度的π的近似值。 假设单位圆的内接多边形的边长为2b,边数为i,则边数加倍后新的正多边形的边长为: 周长为2ix (其中i为加倍前的正多边形的边数) 2、利用随机数法求π的近似值 基本思路是:在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在正方形上做四分之一圆。随机向正方形内扔点,若落入... 阅读全文
摘要:
小续 以下是我收集的一些有趣的计算实例,希望能够提高读者的编程水平及分析问题/解决问题的能力---------------------------------------------马克思手稿中的数学题 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令。若每个男人花3先令,每个女人花2先令,每个小孩花1先令。问男人、女人和小孩各有几人? 实例解析: 设x,y,z分别代表男人、女人和小孩的人数。按题目要求,可得到下面方程: x + y + z = 30 (1) 3x + 2y + z ... 阅读全文
摘要:
八皇后问题 求八皇后问题所有的解。 实例解析: 这是一个非常古老的问题:如何在一个8*8的棋盘上无冲突地放置8个皇后棋子,称为八皇后问题。 在国际象棋中,皇后可以沿着任何直线和任何45°斜线移动吃掉别的棋子,因此,任何一个皇后所在的横线上、竖线上和两条对角线上都不能有其他皇后存在。一个完整的、无冲突的八皇后分布称为八皇后问题的一个解。本例求解八皇后的所有解。 很显然,棋盘的每一行都必须有且只能有一个皇后,因此我们从第一行开始,先放下一个皇后(有8个位置可以放置),然后用递归的方式调用函数本身,去放置后面的棋子,直到第八行放完,则表示找到了一个解。 对于每一行,可以放置皇后的位置有8. 阅读全文
摘要:
多项式的表示和计算 设计一种用单链表存储多项式的结构,每个结点存储一项的系数和指数(类型都是int),并编写一个产生多项式链表的函数和一个实现两个多项式相加的函数。 实例解析: 用单链表存储每一项的数据,则链表结点的结构应含有三个成员:系数、指数和后继的指针。定义结构如下:struct Node{ int coef; int power; struct Node *link;}; 用链表存储多项式时,若系数不为0,则结点存在,若系数为0,则不保留该结点。要注意的是:做加法运算时,因有些结点不存在,所以要比较两个结点所存的次数是否一致。 主要程序代码:#inclu... 阅读全文
摘要:
储油问题 一辆重型卡车的油耗是1L/km,载油能力为500L,今欲穿过1000km的沙漠。由于卡车一次过不了沙漠,因此司机必须在沿途设几个储油点。问:如何建立这些储油点,每一个储油点储存多少油才能使卡车以最小油耗通过沙漠? 实例解析: 本例采用倒推法来解题。所谓倒推法,就是在不知初始值的情况下,通过某种递推关系,由最终值推算出初始值的方法。储油问题和猴子吃桃子问题等都是典型的倒退问题。 显然,卡车要通过沙漠,必须在离起点500km处存储500L油,如图17-1所示。 图17-1 储油点及储油量示意图 而要在500km处储油500L,需要卡车从某处(... 阅读全文
摘要:
小续 算法只是一种思想,在很大程度上,其实现都依赖于数据结构,所以这里提取出一些典型的算法和数据结构,包括排序以及链表/堆栈/队列等结构的操作------------------------------------------------------冒泡法排序 数组中有N个整数,用冒泡法将他们从小到大(或从大到小)排序。 实例解析: 排序是非常重要且很常用的一种操作,有冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序等多种方法。这里我们先简单介绍前三种排序算法和代码的实现,其余算法将在后续课程《数据结构》中学习到。 冒泡法排序是C语言教材中已经介绍过的排序方法,与其他排序... 阅读全文
摘要:
报数游戏 n个小孩围成一圈,从1开始报数,报到k的人退出,其余人重新从1报数,仍是报到k退出,直到圈中只剩m个小孩,问最后剩下的是哪些人? 实例解析: 本题在这里将借助于数组求解,用链表求解的方法放在第17章算法与数据结构实例中。 设计思路:用数组元素模拟小孩。定义一个数组,每个元素存入一个数值作为小孩的编号,然后从第一个元素开始报数,报到k的人将编号清0,表示已退出圈子。在报数的过程中,凡是编号为0的人不再参加报数。当数组所有元素都报数后,重新从数组头开始报数,周而复始,直到圈中只剩m个小孩。#define N 100 int main() {int a[N], n, m, ... 阅读全文
摘要:
利用位运算求整数的原码或补码 利用位运算求任意整数的原码或补码。 实例解析: 整数在内存中本来就是用补码存放的,若要求出补码,只需求出内存中的每一位二进制数即可。而原码,若是负数,则需要将补码减1然后取反(最高位不取反)。 程序代码:#include "stdio.h"int main(){int n, i; char k; clrscr(); scanf("%d",&n); printf("要转成什么?\n"); printf("1、原码\n"); printf("2、补码\n"); 阅读全文