- 2
- 0
- 约2万字
- 约 19页
- 2017-06-03 发布于河南
- 举报
单片机C语言程序该这样写!不是教科书上教的那样!
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
单片机C 语言程序该这样写!不是教科书上教的那样!
发表于:2009-07-22 15:15:38
写单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我
看过的所有的C 语言单片机书籍基本都不注重模块化思想,完全是拿着C 当汇编用,简直
是在糟蹋C 语言!
如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都
写的那么差劲,学的人能好到哪里去) :
1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态
变量、volatile 变量有什么区别联系?)
2 、变量名称极不规范,根本从名字上看不出来这个变量类型是什么,到底想干什么。
3、函数定义几乎不用参数,全都是void
4 、语句写的一点都不直观,根本就是在用汇编。比如:想取一个字长的高字节和低字节,
应该定义一个宏或是函数来做,如#define HIBYTE(w) ((BYTE)((DWORD)(w) 8)) ,以后
直接用HIBYTE()多直观,难道非得用(BYTE)((DWORD)(w) 8)代表你的移位操作的水平
很高吗?
5、最重要的一点,没有建立模块化的编程思想。一个程序往往要很多部分协同工作,需要
把不同的功能分离出来单独创建一个.h 和.c 的文件,然后在头文件中把可以访问的函数暴露
出来。
6、不思考曾经做过的程序是否还有改进的余地,写程序如果只是为了写而写,一辈子也长
进不了多少
欢迎拍砖!
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
为了证明我以上的观点,特此发一下我对c51 定时器的封装,此定时器可以同时设定多个定
时任务,定时精度由晶振精度决定。我的项目中一般用的是12MHZ 的晶振,最小定时在20ms
基本可以接受,再小的不能保证。
/////////////////////////////////////////
头文件
//////////////////////////////////////////
#ifndef _TIMER_CONFIG_H_
#define _TIMER_CONFIG_H_
#include const.h
#include oscfrequencydef.h
#ifndef OSC_FREQUENCY
#error undefined OSC_FREQUENCY
#endif
//#warning must be used in AT89C52 or later version because of idata
#warning
*******************************************************************************
***
#warning !! make sure MAX_TIMER_EVENT_NUM and TIMER0_BASE_INTERVAL has
appropriate value!!
#warning
*******************************************************************************
***
/****************************************************************************
定时中断每TIMER0_BASE_INTERVAL 毫秒产生一次,用户定义的中断时间必须是它的整
数倍
****************************************************************************/
#define MAX_TIMER_EVENT_NUM 5 //可设置不同定时事件的最大个数(至少为2)
#define T
您可能关注的文档
- 北京邮电大学信息与通信工程学院泛网无线教研中心博士生导师田辉教授介绍.pdf
- 2015年北京邮电大学自动化学院控制科学与工程专业考研招生目录及考试科目docx.pdf
- 2015年北京邮电大学博士考试数字信号处理考试大纲.pdf
- 2016年北京航空航天大学MTI翻译硕士英语考研参考书,重难点笔记,考研真题.pdf
- 北京邮电大学信息与通信工程学院信息理论与技术教研中心硕士研究生导师吴晓非教授介绍.pdf
- 2013年北京邮电大学经济管理学院接收推荐免试研究生专业笔试科目.pdf
- 2010雅思强化写作课程 S1 TASK1概论和基本策略.pdf
- 北京邮电大学信息与通信工程学院多媒体技术教研中心博士生导师苏菲教授介绍.pdf
- 2017年浙江师范大学 硕士招生全日制翻译硕士专业学位(MTI)考试总纲考试科目命题指导意见.pdf
- 北京邮电大学信息与通信工程学院多媒体通信与模式识别方向(苏菲)博士研究生招生人数、考试科目.pdf
最近下载
- 重庆天齐锂电新材料有限公司新建1000吨_年高能锂电材料电池级金属锂项目环评报告.pdf VIP
- DB65T 3694-2015 现行哈萨克文与西里尔哈萨克文编码字符转换规则.docx VIP
- TGXAS 1044-2025《中医护理三级查房规范》(发布稿).pdf VIP
- 华为云服务登录.doc VIP
- 采砂场工业用水水资源论证论证表详解.doc VIP
- Onkyo安桥TX-NR828中文说明书.pdf
- 采砂场工业用水水资源论证论证表分析报告.doc
- 【中考】2025年广东佛山数学试卷(原卷+答案).docx VIP
- 2021年广东省佛山市中考数学真题及答案.pdf VIP
- SpaceX火星探索任务成本预算与风险管理分析报告.docx
原创力文档

文档评论(0)