应广驱动框架_第一章 框架一览


应广的MCU用了两年多,因为本人比较懒,不想每次做项目的时候都要copy或重新编写各种重复的代码,于是写了一个小的驱动框架,有所心得记录于此,与大家共勉吧!


背景知识:应广8bit台系单片机,型号丰富,支持AD、PWM、比较器、定时器、外部中断等,超低功耗(Sleep状态约1uA);支持应广MiniC(C语言简化版),比汇编友好很多,IDE稳定流畅,且价格经济,实为不可多得的低端单片机,推荐使用!


一、概述

1.主循环包含高、中、低速任务单元,中速单元2ms执行一次,分出4个任务case,减少CPU空转时间;Timer定时可一键配置成250us或1ms中断,以匹配不同使用场景。

2.驱动的层次划分为:"核心驱动"、"扩展驱动"、"项目驱动"、"用户驱动"。

#1.核心驱动:以宏或函数的形式为每款MCU编写API,包含PMS131、PMS132、PMS150、PM154等芯片。

#2.扩展驱动:常用驱动模块,如按键、LED、红外、IIC、Moter、Sleep、Math以及特定芯片的驱动,如24C0x、XN297等。同样是以宏和函数的形式编写了API。

#3.项目驱动:针对常用项目规划,如2.4G固码跳频、2.4G自动对码等。

注:所有驱动均以”XXX.C及XXX.H”的形式成对给出。

 

二、项目配置

源码中使用Driver_Start.h文件来控制编译,可选择项目所用芯片及所需驱动。

下面以PMS154为例说明芯片选型及相关配置。

1.      选择”项目.pre”中的”.CHIP PMS154”。

应广驱动框架_第一章 框架一览_第1张图片

2.选择”Drivers_Start.h”中的”__CHIP_PMS154__”,则对应芯片的核心驱动(KernelDrv)自动开

启,核心驱动一般无需修改,直接使用即可。至此芯片选型完成。

应广驱动框架_第一章 框架一览_第2张图片

图_芯片配置

3.      继续查看”Driver_Start.h”,开启当前项目实际所需驱动。

应广驱动框架_第一章 框架一览_第3张图片

图_驱动配置

三、主结构说明

Main.C为项目主文件,上电初始化完成后,除中断外所有程序均在”while(1){}”循环中进行。

Main.H为项目头文件,实际项目编程专有的”IO、变量、常量、宏、函数”等均在此文件中声明,这样避免了驱动框架与项目专有定义的混和,使结构清晰明了便于后期查阅修改。

1.      上电初始化,除RAM清零宏外所有初始化均放入Sys_Init()函数中。

注:”Clear_AllRAM_”宏会将包括栈在内的所有RAM0,故不能在函数中使用。

应广驱动框架_第一章 框架一览_第4张图片

图_上电初始化

2.”while(1){}”循环结构。其中的SppeCon_Num在定时器中断中每1ms自加1,详见”INT_Drv”驱动。下图红框部分为各种功能函数调用,配合完成项目功能。

应广驱动框架_第一章 框架一览_第5张图片

图_while(1){}主循环

走到这里了,如果读者大大脑中冒出个念头“哎,我的单片机貌似也可以这样额”,那么恭喜啦,Just do it~

其实即使是仅支持汇编的单片机同样可以形成类似的驱动框架哦,还是那句话,Just do it!

你可能感兴趣的:(应广单片机)