C语言嵌入式系统编程修炼之软件架构(一)篇
HOT

模块划分  模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:  (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;  (2) 某模块提...
阅读全文

C语言嵌入式系统编程修炼之键盘操作(二)
HOT

处理数字键  用户输入数字时是一位一位输入的,每一位的输入都对应着屏幕上的一个显示位置(x坐标,y坐标)。此外,程序还需要记录该位置输入的值,所以有效组织用户数字输入的最佳方式是定义一个结构体,将坐标和数值捆绑在一起:/* 用户数字输入结构体 */typedef struct tagInputNum{ BYTE byNum; /* 接收用户输入赋值 */ BYTE xPos; /* 数字输入在屏幕...
阅读全文

C语言嵌入式系统编程修炼之键盘操作(一)
HOT

处理功能键  功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1:图1 主画面  当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:图2 切换到设置XX画面  程序如何判断用户处于哪一画面,并在该画面的程序状态下调用对应的功能键处理函数,而且保证良好的结构,是一个值得思考的问题。  让我们来看看WIN32编程中用到...
阅读全文

C语言嵌入式系统编程修炼之屏幕操作(三)
HOT

模拟MessageBox函数  MessageBox函数,这个Windows编程中的超级猛料,不知道是多少入门者第一次用到的函数。还记得我们第一次在Windows中利用MessageBox输出 "Hello,World!"对话框时新奇的感觉吗?无法统计,这个世界上究竟有多少程序员学习Windows编程是从MessageBox("Hello,World!",…)开始的。在我本科的学校,广泛流传着一个...
阅读全文

C语言嵌入式系统编程修炼之屏幕操作(二)
HOT

动画显示  动画是无所谓有,无所谓无的,静止的画面走的路多了,也就成了动画。随着时间的变更,在屏幕上显示不同的静止画面,即是动画之本质。所以,在一个嵌入式系统的LCD上欲显示动画,必须借助定时器。没有硬件或软件定时器的世界是无法想像的:  (1) 没有定时器,一个操作系统将无法进行时间片的轮转,于是无法进行多任务的调度,于是便不再成其为一个多任务操作系统;  (2) 没有定时器,一个多媒体播放软件...
阅读全文

C语言嵌入式系统编程修炼之屏幕操作(一)
HOT

汉字处理  现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。  如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分简单的:汉字库是按照...
阅读全文

C语言嵌入式系统编程修炼之内存操作(二)
HOT

关键字const  const意味着"只读"。区别如下代码的功能非常重要,也是老生长叹,如果你还不知道它们的区别,而且已经在程序界摸爬滚打多年,那只能说这是一个悲哀:const int a;int const a;const int *a;int * const a;int const * a const;  (1) 关键字const的作用是为给读你代码的人传达非常有用的信息。例如,在函数的形参前...
阅读全文

C语言嵌入式系统编程修炼之内存操作(一)
HOT

数据指针  在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况:  (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址;  (2) 两个CPU之间以双端...
阅读全文

什么是C语言程序设计?
HOT

(一)“项目驱动”式教学 目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。 c语言程序设计是过程性程序...
阅读全文

C语言初学者入门讲座 目录
HOT

1、C语言初学者入门讲座 第一讲 慨述 2、C语言初学者入门讲座 第二讲 数据类型(1)3、C语言初学者入门讲座 第二讲 数据类型(2)4、C语言初学者入门讲座 第二讲 数据类型(3)5、C语言初学者入门讲座 第三讲 基础语句6、C语言初学者入门讲座 第四讲 运算符和表达式7、C语言初学者入门讲座 第五讲 输入输出(1)8、C语言初学者入门讲座 第五讲 输入输出(2)9、C语言初学者入门讲座 第六...
阅读全文

C语言初学者入门讲座 第十六讲 文件(2)
HOT

字符串读写函数fgets和fputs  一、读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志'\0'。例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入字符数组str中。  ...
阅读全文

C语言初学者入门讲座 第十六讲 文件(1)
HOT

所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。   普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以...
阅读全文
122 页 / 共 196