从单片机初学者迈向单片机工程师(5)

来源:本站
导读:目前正在解读《从单片机初学者迈向单片机工程师(5)》的相关信息,《从单片机初学者迈向单片机工程师(5)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《从单片机初学者迈向单片机工程师(5)》的详细说明。

在我们使用51单片机的C语言编程的时候,整形变量的范围是16位,而在基于32的微处理下的整形变量是32位。倘若我们在8位单片机下编写的一些代码想要移植到32位的处理器上,那么很可能我们就需要在源文件中到处修改变量的类型定义。这是一件庞大的工作,为了考虑程序的可移植性,在一开始,我们就应该养成良好的习惯,用变量的别名进行定义。

如在8位单片机的平台下,有如下一个变量定义

uint16 g_nTimeCounter=0 ;

如果移植32单片机的平台下,想要其的范围依旧为16位。

可以直接修改uint16 的定义,即

typedefunsignedshortint uint16 ;

这样就可以了,而不需要到源文件处处寻找并修改。

将常用的数据类型全部采用此种方法定义,形成一个头文件,便于我们以后编程直接调用。

文件名 MacroAndConst.h

其内容如下:

#ifndef _MACRO_AND_CONST_H_

#define _MACRO_AND_CONST_H_

typedef unsigned int uint16;

typedef unsigned int UINT;

typedef unsigned int uint;

typedef unsigned int UINT16;

typedef unsigned int WORD;

typedef unsigned int word;

typedef int int16;

typedef int INT16;

typedef unsigned longuint32;

typedef unsigned long UINT32;

typedef unsigned long DWORD;

typedef unsigned long dword;

typedef long int32;

typedef long INT32;

typedef signedchar int8;

typedef signedchar INT8;

typedef unsigned char byte;

typedef unsigned char BYTE;

typedef unsigned char uchar;

typedef unsigned char UINT8;

typedef unsigned char uint8;

typedef unsigned char BOOL;

#endif

至此,似乎我们对于源文件和头文件的分工以及模块化编程有那么一点概念了。那么让我们趁热打铁,将上一章的我们编写的LED闪烁函数进行模块划分并重新组织进行编译。

提醒:《从单片机初学者迈向单片机工程师(5)》最后刷新时间 2024-03-14 01:14:18,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《从单片机初学者迈向单片机工程师(5)》该内容的真实性请自行鉴别。