×
单片机 > 单片机程序设计 > 详情

avr单片机c语言编程风格介绍

发布时间:2021-04-19 发布时间:
|

  摘要:作为一个初学者如何具有良好的程序设计风格呢?下面小编将以avr单片机介绍它的c语言编程风格。

  C语言编程风格介绍

  1.变量定义

  在定义变量时,前缀使用变量的类型,之后使用表现变量用途的英文单词或单词缩写,且每个单词或缩写的首字母大写,各种前缀缩写如下:


  无符号变量使用 u8,u16,u32;例:unsigned char u8Temp;

  有符号变量使用 s8,s16,s32;例:char s8Temp;

  浮点数变量使用 f32,d64;例:float f32Temp;

  结构体变量使用 st;例:struct Temp stTemp;

  字符串变量使用 s;例:char sTemp;

  数组变量使用 a;例:unsigned char aTemp[10];

  指针变量使用 p;例:unsigned char *pTemp;

  枚举变量使用 e;例:enum Temp eTemp;

  2.宏定义

  对于宏定义使用大写+下划线的方式。

  3.程序排版

  一行程序的开始使用tab键进行对齐,一行的中间使用空格键进行对齐。

  这样防止不同的编辑工具打开时,造成代码混乱。

  4.注释的书写

  这里注释分为函数头注释,程序中代码注释,

  函数头注释使用如下形式

  /*

  *Name:

  *DescripTIon:

  *Created:

  *Author:

  */

  这四项必选,其他的如函数的传入传出参数,视函数的需要适当增加。

  5.测试代码

  在编程的同时,需要注意添加适当的测试代码,这样可以减轻以后测试代码时的工作量。

  AVR c语言优秀编程风格

  文件结构

  模块化的程序应该是有一个很好的程序结构的。AVR C语言程序有两种用户文件,.c程序文件,.h头文件,程序中编写过程中需要在.c文件中包含.h头文件。初学者往往出现重复包含或者头文件包含错误的问题,我当时也时常为这种错误而发愁。下面我以我写的电机驱动例程来给大家说明一下,优秀的编程文件结构。


  这个工程中有8个文件,一个说明文件,如下图:下载程序例子 电机控制案例 。

  

  我写的成型的程序的文件个数基本上都是偶数,因为每一个结构化的函数定义.c文件都会对应一个.h文件。main.c对应config.h。我们来看看各文件的包含关系。下面我们看看这些文件的包含关系与内容:[推荐的文件包含顺序与关系]

  所有.c文件都包含了config.h文件。如: #include “config.h”

  在config.h 中有如下代码:

  #include “delay.h”

  #include “device_init.h”

  #include “motor.h”

  这样做就不容易出现错误的包含关系,为了预防万一,我们还引入了宏定义与预编译。如下:

  #ifndef _UNIT_H__

  #define _UNIT_H__ 1

  //100us

  extern void Delay100us(uint8 n);

  //1s

  extern void Delay1s(uint16 n); // n 《= 6 ,when n==7, it is 1.

  //1ms

  extern void Delay1ms(uint16 n);

  #endif

  第一次包含本文件的时候正确编译,并且#define _UNIT_H__ 1,第二次包含本文件#ifndef _UNIT_H__就不再成立,跳过文件。


  预编译还有更多的用途,比如可以根据不同的值编译不同的语句,如下:

  //#pragma REGPARMS

  #if CPU_TYPE == M128

  #include 《iom128v.h》

  #endif

  #if CPU_TYPE == M64

  #include 《iom64v.h》

  #endif

  #if CPU_TYPE == M32

  #include 《iom32v.h》

  #endif

  #if CPU_TYPE == M16

  #include 《iom16v.h》

  #endif

  #if CPU_TYPE == M8

  #include 《iom8v.h》

  #endif

  #include《filename》 与 #include “filename” 的区别 :前者是包含系统目录include下 的文件,后者是包含程序目录下的文件。


  变量名与函数名

  变量以及函数命名应该按照尽量短,按需长,具有实际意义。可以通过下划线或者大小写结合的方法组合动词和名词组成变量函数名。下面对比好的命名方法与不好的命名方法:

  1.好的: Delay100us();

  不好的: Yanshi();

  2.好的: init_devices();

  不好的: Chengxuchushihua();

  3.好的: int temp;

  不好的: int dd;

关键字:avr单片机  c语言  编程风格

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法