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

发布者:tmgouzi最新更新时间:2019-12-17 来源: elecfans关键字:avr单片机  c语言  编程风格 手机看文章 扫描二维码
随时随地手机看文章

  摘要:作为一个初学者如何具有良好的程序设计风格呢?下面小编将以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个文件,一个说明文件,如下图:下载程序例子 电机控制案例 。

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

  我写的成型的程序的文件个数基本上都是偶数,因为每一个结构化的函数定义.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语言  编程风格 引用地址:avr单片机c语言编程风格介绍

上一篇:avr单片机几个主要优点
下一篇:AVR单片机的特点及缺点解析

推荐阅读最新更新时间:2024-11-07 15:33

基于AVR单片机多任务嵌入式Internet系统设计
1 引言 目前,嵌入式系统已经广泛渗透到人们的工作、生活中。从家用电器、信息终端、手持通信设备到仪器仪表、制造工业、过程控制等领域,嵌入式设备已随处可见。另一方面,近几年来Internet技术的飞速发展给嵌入式应用带来了新的契机,在未来嵌入式系统中应用Internet技术具有很大的优势。 目前嵌入式Internet技术的实现主要有下面三种方式 : 第一种方式是EMIT技术,采用支持TCP/IP协议的高性能服务器作为网关(emGateway), 嵌入式设备通过RS-232、RS-485或者CAN总线等与网关服务器连接,间接通过服务器网关连接Internet。经过多年的发展EMIT技术已经在工业设备的网络化中得到了广泛
[应用]
基于AVR单片机的LED显示屏控制系统的研究
1 引言   LED 显示屏是八十年代后期在全球迅速发展起来的新型信息传播媒体,是集微电子技术、光电子技术、计算机技术、信息处理技术于一体的大型显示系统。它以其色彩鲜艳、动态范围广、亮度高、寿命长、工作性能稳定而日渐成为显示媒体中的佼佼者,广泛应用于广告、证券、信息传播、新闻发布等方面, 是目前国际上较为先进的宣传显示媒体 .本文提出了一种主从式单片机的LED 显示屏解决方案, 该设计方案利用AVR单片机自身的FLASH ROM 和RAM,外部无需任何存储电路,电路结构简单。   2 系统的工作原理及总体方案设计   2. 1 AVR 单片机   AVR 单片机是增强型内置Flash 的RISC(ReducedInstr
[工业控制]
基于<font color='red'>AVR单片机</font>的LED显示屏控制系统的研究
AVR单片机(ATMEGA16)万年历(温度闹钟年月日时分秒星期)
功能说明: LCD1602液晶显示年、月、日、时、分、秒、星期、温度,三个按键控制时间日期调整以及闹钟设定。 三个按键: 1、“校时”键,每次按下分别对应调整秒、调整分钟、调整小时、调整星期、调整日、调整月份、调整年份、调整闹钟分钟、调整闹钟小时、退出校时模式; 2、“增加/开闹钟功能”键,校时模式下按下此键则数值加一,非校时模式下按下此键则显示出闹钟时间并打开闹钟功能(屏幕显示字母A); 3、“减小/关闹钟功能”键,校时模式下按下此键则数值减一,非校时模式下按下此键则关闭闹钟显示并关闭闹钟功能(屏幕字母A消失);
[单片机]
<font color='red'>AVR单片机</font>(ATMEGA16)万年历(温度闹钟年月日时分秒星期)
AVR单片机在无线自动报靶系统中的应用
目前,在野外射击训练考核中,大部分还是通过人工报靶的方法,带有很多人为因素(如报靶人员的主观性、情绪等),影响报靶的结果,使得射手不能正确了解自己的成绩,不利于打靶水平的提高。虽然现在市面上出现了一些自动报靶产品,但这些产品的成本高、系统比较复杂,并且占用场地。因此,本文根据实际训练需要,研制出了集轻武器射击训练所需的所有功能于一体的、基于AVR单片机的一种无线自动报靶系统。该系统包括精确和非精确报靶,射击成绩的自动实时显示、统计和打印,可以满足多种武器和多种射击模式的训练需求,对目标的隐显时机、次数、间隔等均按训练大纲要求由电脑自动控制,既可同时监控多个(25个)靶位的射击情况,也可单独监控一个靶位的射击情况。 1 系统组成
[工业控制]
<font color='red'>AVR单片机</font>在无线自动报靶系统中的应用
谈谈单片机C语言编程中不经意间的一个小错误!
我们知道,51单片机有几个不同的中断源。 对于一个系统的设计,通常在初始化程序里面需要定义各个中断等 比如: TMOD = 0x21; // T1 mode 2 T0,mode 1 //GATE C/T M1 M0 GATE C/T M1 M0 TL1 = 0xfd; // 0xfa=4800 bps 0xfd=9600 bps TH1 = 0xfd; TH0 = -(10000/256); TL0 = -(10000%256); PCON = 0; //波特率不变等设置 SCON = 0x50; //串口1方式1,允许接收 IT0 = 1; //外部中断0下降沿有效 IT1 = 1; //外部中断1下降沿有
[单片机]
AVR单片机的优越性
什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机? AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大; 3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源
[单片机]
电源管理:基于AVR单片机的多功能电源设计
引 言 随着嵌入式系统设计技术的发展,在设计和仿真中,系统 工程师 对 电源 的要求也越来越高。在嵌入式系统设计是使用8031 单片机 和74系列 集成电路 时,所有使用74系列集成电路的 电路 板都使用单一的5 V电源供电就可以了。当时的供电电源部分不是一个需要太多注意的单元,基本上5 V的电源能满足所有的数字集成电路设计的需要。而近几年来,随着技术的发展,集成电路里的 三极管 变得越来越小并且工作的 电压 越来越低,使得嵌入式系统开发的重点从系统的速度,转到 低功耗 设计上。因此在同一个嵌入式系统中,存在多种不同电压的电源供电,从低于1 V到高于5 V都存在。而且在系统的稳定性和可靠性测
[电源管理]
电源管理:基于<font color='red'>AVR单片机</font>的多功能电源设计
C语言实现CRC校验计算
在编写数据传输程序时,数据容错是一个非常重要的问题。循环冗余位校验(Cyclicl Redundncy Check英文简称CRC)是目前运用非常广泛的一种数据容错方法,在数据传输,数据压缩等领域运用极其广泛。CRC的实现分为硬件和软件两种方法,其中软件实现的关键在于计算速度。如果单纯模拟硬件实现方法,则计算速度较慢。笔者在编制一个数据通讯软件中,运用了一种新颖的查表法计算CRC,速度很快,效果极佳。 首先介绍其原理,如果每次参与CRC计算的信息为一个字节,该信息字节加到16位的累加器中去时,只有累加器的高8位或低8位与信息字节相互作用(异或),相互作用(异或)的结果记为组合值,那么累加器中的新值等于组合值加上(按模2异或)累加器
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved