在单片机应用系统中,特别对于大型的复杂系统,由于传感器和处理模块非常多,放在一个文件中是不可行的,此时,要进行模块化处理。
把每一个模块做成一个.c文件和一个.h文件。在一个.c文件中的函数只会相互调用,而不调用其他文件的函数,尽量减少不同文件里函数的交叉调用,以下是几个要注意的问题:
(1)模块头文件防止重复包含的措施
在每个模块中的.h文件开始处,为了防止重复包含,使用以下代码:
#ifndefine xxx //没有定义xxx,则编译下面的语句
#define xxx //然后定义xxx,使得这次包含只进行一次,在下次检查时,就会发现已定义
………. // 了xxx,就不会再次包含了
#endif
(2)代码封装
1、函数在头文件中声明,函数体放在.c文件中;
2、只在本.c文件中调用的宏定义就放在.c文件中,需要被其他文件调用的宏定义放在头文件中;
3、尽量少用全局变量,必须用时,则放在.c文件中自己用,当该全局变量需要被外部调用时,则在.h文件中用extern声明一下。
关键字:模块化编程 单片机 传感器
引用地址:
模块化编程
推荐阅读最新更新时间:2024-11-02 11:28
最新无人驾驶汽车新型超快速智能摄像头发布
为了避免交通事故,无人驾驶汽车(以及无人机)需要对传感器采集的周边信息进行快速处理。但在遭遇极端道路条件和恶劣天气的情况下,传统光学摄像头难以胜任这项工作。为了提升此类应用的视觉信息处理表现,新加坡南洋理工大学的一支研究团队,就从“源头”着手,开发出了一种新型“超快速、高对比度”智能摄像头。 Chen Shoushun 带头开发了一种超快速摄像头,其采用了独特的内置电路。 南洋理工(NUT)助理教授 Chen Shoushun 带队开发的新款摄像头,能够记录下场景间纳秒级的光强度变化,从而实时监测物体的运动。 过去十年,无人驾驶汽车技术已经取得了长足的进步,以 Google 和 Uber 为代表的多家高科技企业(以及传统汽车
[嵌入式]
基于AVR单片机的通用USB接口模块设计
1 引言 USB接口以其数据传输快、连接简单、易于扩展、支持热插拔等特点已成为外设与PC通信的主要方式之一。随着嵌入式系统的发展,嵌入式微处理器需增加通用的USB接口,以便实现与PC等USB主机系统的通信。针对这样的需求,这里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列单片机ATmega8设计一种通用的USB接口模块。该模块可方便为各种嵌入式微处理器增加USB接口,从而实现与USB主机系统的高速通信。 2 系统硬件设计 该系统模块的控制核心是AVR高速单片机ATmega8。AVR单片机是新一代基于哈佛结构的高速RISC微控制器,具有速度快、价格低、可靠性高,I/O口
[模拟电子]
51单片机的延时及时序分析
51单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控时序进行工作,在学习51单片机的时序之前,我们先来了解下时序相关的一些概念。 既然计算机是在统一的时钟脉冲控制下工作的,那么,它的时钟脉冲是怎么来的呢? 要给我们的计算机CPU提供时序,就需要相关的硬件电路,即振荡器和时钟电路。我们学习的8051单片机内部有一个高增益反相放大器,这个反相放大器的作用就是用于构成振荡器用的,但要形成时钟,外部还需要加一些附加电路。8051单片机的时钟产生有以下两种
[单片机]
盘点汽车电子领域的黑科技
汽车应用领域已经出现了一系列新技术,包括电力系统的改进、非常复杂的远程信息处理,还有自动驾驶。今天的汽车有更多的电子产品。然而,随着诸如高级驾驶辅助系统(ADAS)等功能成为标准配置,而不是昂贵的选项,更多的先进功能模块将会进入寻常百姓家的汽车当中。下面就随汽车电子小编一起来了解一下相关内容吧。 通过改进传感器、处理器和内存、软件,甚至是需要实时集成的人机接口,使得一些变化正在悄然实现(见图1)。下面介绍一些最新技术,以及他们与其它技术的关系如何使其在汽车应用环境中更为重要。 图1. 需要多个重叠的传感器来提供系统建立情境意识的信息,以实施安全的ADAS支持 1、车用传感器的进展 汽车应用受益于可以流式传输4K视频的相
[汽车电子]
STC15F2KA60S2芯片粉尘传感器的应用
1.粉尘有什么危害? 什么是粉尘? 总悬浮颗粒物(TSP)—环境空气中空气动力学当量直径小于等于100μm的颗粒物。 • PM10—环境空气中空气动力学当量直径小于等于10μm的颗粒物。 • PM2.5—环境空气中空气动力学当量直径小于等于2.5μm的颗粒物。 粉尘对人体的危害,根据其理化性质、进入人体的量的不同,可引起不同的病变。如呼吸性系统疾病、局部作用、中毒作用等。 职业性呼吸系统疾病有如下4种表现 1.尘肺 2.粉尘沉着症 3.有机粉尘引起的肺部病变 4.呼吸系统肿瘤 2. 目的: 随着经济的发展,大气中的污染物也随之增加了许多。现如今的雾霾天气也越来越严重,这些恶劣的天气与空气中的粉尘
[单片机]
通用汽车收购传感器公司Strobe 加速自动驾驶市场布局
通用 汽车9日宣布,将收购高科技传感器公司Strobe。该交易若取得成功, 通用 汽车将成为自动驾驶领域巨头Alphabet和特斯拉的强大竞争对手。下面就随汽车电子小编一起来了解一下相关内容吧。 通用汽车收购传感器公司Strobe 加速自动驾驶市场布局 据悉, 通用 汽车还将收购Strobe的工程团队,为收购的Cruise汽车公司服务。通用汽车于2016年收购了这家无人车技术企业,希望借助该公司经验丰富的软件人才及快速的开发能力,加速通用汽车在自动驾驶汽车技术领域的研发。通用汽车还投资了自驾汽车初创公司Nauto。 Cruise汽车创始人官基莱·沃格特表示,“Strobe的技术将显著降低车辆成本并提升性能,
[汽车电子]
基于AVR单片机的无线远程数据采集终端的研制与开发
一、引言 随着城市供水规模扩大,城市管网不断增大,厦门自来水公司原有遥测系统难以适应生产调度需求。要求有一套可靠、快速的调度遥测系统,综合国内RTU(Remote Terminal Unit 远程测控终端)的发展状况及公司的具体情况,厦门自来水公司独立研制开发了一套新的基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。系统的整体结构如图1,其中粗黑框部分为系统的核心MTU、RTU。 分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送
[单片机]
迈来芯推出创新微型FIR传感器,扩展温度传感器产品组合
全球微电子技术公司——迈来芯(Melexis)宣布推出新系列微型远红外(FIR)传感器--- MLX90632,适用于需要进行精确温度测量的多种应用。 MLX90632系列基于迈来芯成熟的FIR技术——采用每个物体都会发出热辐射的原理。这款超小型集成热电堆CMOS IC采用3x3x1mmQFN封装,包含传感器元件、信号处理、数字接口和光学器件在内的完整解决方案,可以快速简单地集成到各种现代应用中。 该高精度器件在经历热梯度和快速温度变化时可提供高水平的热稳定性,解决了现有红外传感器众所周知的弱点。此外,它还提供与标准PCB组装技术兼容的表贴型(SMD)封装。 MLX90632系列的第一个民用级产品现已发布,其后续产品将
[传感器]