No.1 定时器接口timer的设计

本文探讨了单片机程序的四个层次,并以定时器接口设计为例,介绍了如何在应用程序接口层中实现定时任务。设计的定时器接口使用结构体和指针,保证了高精度和易用性,同时分析了其实现的精确性和潜在功能扩展。
摘要由CSDN通过智能技术生成

<span style="font-size: 12px; background-color: rgb(255, 255, 255);">	 </span><span style="font-size: 12px; background-color: rgb(255, 255, 255);"><span style="font-family:KaiTi_GB2312;">单片机的种类繁多,且架构不同,导致开发周期长,效率低,排错难。本人就深受其苦。由此,需要一种程式化的方法来梳理整个单片机软件系统。</span></span>

在参考有关单片机及c语言的书籍后,暂将普通的单片机程序(不考虑操作系统)分为四个层次。


1、硬件基础层Hardware Base Layer):该层由生产具体芯片的厂商提供,例如reg51.h头文件和Startup_A51.asm等。一般单片机入门从该层开始。但该层是对具体硬件的描述,仅从该层开发效率低。即使面对相同的芯片,实现的功能不同就有可能会成为编写软件的障碍。

2、硬件抽象层Hardware Absract Layer):该层如同我们平时用c语言编写的单片机相关函数,如常用的timer_init()、usart_init()、usart_sendData()等。进入单片机编程至今已有两年,回顾写过的这类函数,大部分都是用void作为形参或返回值。这样的函数虽然有了结构化的雏形,但离模块化、功能化还很远。

3、应用程序接口层Application Interface Layer):一般的单片机程序是没有该层的,有人会有这样的考虑,单片机的RAM和ROM都很有限,过多的函数调用会受到硬件资源的限制,并且实时性变差。但没有这一层级,我们所需实现的综合功能就要直接和硬件打交道,而硬件逻辑和我们所需要的功能逻辑有一定的出入,不兼容的逻辑体系会使开发工程左右为难,因此,这一层的功能便是在受限的硬件逻辑和开发者需要的功能逻辑之间相互转换。如果接口设计良好,对于单片机软件体系的改良是有帮助的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值