



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
我的总结1. 在H文件中定义的变量可以再main函数中用,要包括头文件;但main之前定义的全局变量不能在头文件中用。(重复定义的错误)。2. 在写程序时,必须首先画出它的程序流程图,也就是程序的走向。一步一步的将他在纸上写出来。3. 调用数组函数时,数组一般用的是数组名。4. 即使a、b是空类型(void)的函数,当a函数要调用b函数情况发生,b函数必须写在a函数的前面。5. 遇到问题不要慌,认真对待!从软件开始,一步一步地排除原因,当实在找不出原因时,再检查硬件电路。6. 在定义函数时,无论是形参还是全局变量都要对其初始化,既方便自己写程序,也减少了不必要的错误。7. 中断程序里不要定义变量,定义变量一般在主函数开始的时候。8. 在调试程序中,我们要观察程序执行到哪里,可以用一个发光二极管去检测。9. 用switch语句有时候可以让程序并行。10. C语言中的结构体是一个重点。11. 不要交叉调用C头文件。也就是在争论先有鸡还是先有蛋的问题。12. 中断里不要又太长的程序,要是周期性中断,就必须保证有一定的阈值,否则程序就有可能跑错。13. 当程序中需要用到一些并列的语句时,可以设置一个标志变量Flag。当情况一发生时,Flag会自行加加,否则清零。在接下来的另一种情况中让程序在Flag为0 的条件下执行。这样就达到了并列的效果。14. 变量一般不定义在H文件中,因为当两个C文件同时用到某个全局变量时,那么就相当于对全局变量定义了两次,实际上这是不允许的。正确的处理方法是在要用的时候进行变量定义,然后在H文件中进行申明,申明为外部变量。最后在C文件中区定义。15. 静态变量和全局变量的好处就是:系统不会回收他们的内存。也就是说,他们会保持上一次的值,也就是他们与局部变量的不同。同样决定了他们的不足。16. “-” 表示指向结构体运算符,它的结合方向是从左向右的,优先级最高。17. x*x不能写作x2,在C语言中,“”表示按位异或的意思。18. 定义结构体变量时,首先在H文件中申明,然后在C文件中要定义一个与结构体相关的变量。这样在程序中才能应用。例如:先在H文件中申明一个结构体extern typedef struct AA; 然后再C文件中定义A Other;这样Other也具有和结构体A相同的形式。19. 调用带指针操作的函数时,在形参的传递时,注意用的是取址操作符&,还是指针操作符*。20. 对于乘除操作时,采用左移和右移的方法,比乘除执行的速度要快。21. 在对信号采集时,我们经常会碰到数的更新。有两种方法。方法一:设定一个数组,每次先将ai+1 = ai,然后用当前值对a0进行更新。方法二:也是设定一个数组,在这里,处理的比较简单。只需将最旧的那个数进行更新就可以了。也就是说第一次将当前值赋值给a0,第二次赋值给a1,以此类推,进行无限的循环。22. 取表法是单片机程序中很常用的一种编程思想:要显示的数据之间不存在简单的运算关系,不能使用ADD和SUBB等指令根据上一个状态计算出下一个状态的显示值。但显示的数据存在依次取用的特点,这是一般就会用到取表法。23. 很多时候可以单步执行,然后用示波器去检测输出口的波形, 看到底程序是否跑对。24. 单片机与计算机进行串口通信时,计算机端一般只设定整数值的波特率,这样造成了单片机与计算机的通信的波特率不全相等,导致传输错误的发生。串口通信模块中有两条指令经常用到:“JBC TI,CHECK”和“JB RI,CHECK”他们分别用来检测发送中断标志位TI和接收中断标志位RI,用来判断接收完成情况。25. 边沿触发对电平的要求是:如果晶振为12MHz ,至少需要1个机器周期的高电平,且向低电平跳变之后至少保持一个机器周期的低电平。26. 在主函数的内部,定义局部变量一定要放在任何函数或语句执行之前,否则肯定报错。27. 对于一个程序,中断是一个很重要的东西,设置好中断,程序会很简单。28. 有时候想问题不能死钻牛角尖,不是那里的问题,就不是。比如说有些I/O口的输入输出设置,是一个很玄乎的东西,想问题深入一点,细致一点。29. 注意引脚输入输出的定义,特别是一些好的单片机,对引脚的输入输出有特殊的设置要求。例如:飞思卡尔的单片机的PE0和PE1只能作为固定输入。30. 在很多时候应该想一些问题的另一面,如果SMOD为某一寄存器的一位,其值只能是0或者是1.那么,2SMOD = (SMOD + 1).有些运算就得到了简化。31. 写程序时,应该尽量用一些“与或非”操作。例如一个寄存器PCON.如果有操作:PCON |=0x80(就是将PCON的最高位写1,其他位不管)。而如果有操作PCON &=0x80(就是将PCON的低七位都清零)。与或非操作能够大量的缩短程序执行的时间,增强了代码的可读性。32. 对某一个端口的某些位进行操作时,不管其他位的状态,需要用到或与相关的知识。例如,对P3口的高四位进行读值时,不考虑低四位的状态。可以用一个&符号。即temp=P3&0xf0;这样低四位的值肯定全为零。而高四位就保持了状态。33. AD9852_Data0=(unsigned char*)&FTW)5; 这条语句的意思是:第一步,&FTW是C中常用的一个取址的操作,取数组FTW的地址;第二步,对原本的数组FTW中的所有数据进行强制转换。第三步,是对数组中的数的取出。即FTW5。34. #define AD9852_Set_IORESET() doAD9852_IORESET_DIR = 1; AD9852_IORESET_OUT = 1; while(0) 在以后有些函数用的比较多时,尽量在宏定义中去写。宏定义中的函数尽量都是最底层的函数,也就是没有调用任何函数,都是对寄存器的操作。35. 宏定义的作用就是纯属的一个复制作用,它是把一些经常用到的函数写在宏定义中。这样的话就方便程序的修改。36. DDRA&=0xF8; DDRA|=temp; 这两句操作第一句能保证低三位首先清零。Temp的值也就是你要定义的低三位的输入或输出状态。这样的位操作在程序中用的比较多。应多加应用。37. 当函数的形参是全局变量的时候,这个时候可以将形参省略不写,省略了不必要的代码,但是也增加了别人读代码的难度。38. 有时候某些端口必须有触发功能,也就是说它是上电复位的,在系统板上按复位键和按运行键是有本质区别的。39. 以后在写程序的时候尽量做到模块化,也就是说,在对端口的定义的时候,尽量不要直接写PORTA或者PORTB等。可以这样定义: #define Set_Rs PTS_PTS2 = 1#define Clr_Rs PTS_PTS2 = 0 (定义它的控制字) #define ad9851_w_clk_dir DDRB_DDRB0 (定义输入输出方向) 这样写的话以后可以方便改写端口,增强程序的可移植性。40. 有时候,数据需要转换,读数据的时候对应的输出端口的方向是输入,而写数据的时候对应的端口是输出。41. 有的时候写程序的想法不能太死,比如说吧:a要从0到100,以10为步进,大多数人的想法是这样的,if(a=0&a=10&a90) do something; else if(a80) do something从这样的操作可以看出,减少了代码量,还不会影响程序的执行。42. 在以后的程序设计中,尽量写好程序的相关说明,最好像下面的所示:/* 名 称:Test(void)* 功 能:测试液晶屏* 入口参数:无* 出口参数:无* 说 明:测试液晶屏是否正常工作* 调用方法:Test();*/43. 我们写的函数应该是容易让别人读懂的,更应该具有通用性。比如说画一个坐标轴xOy。就要写的方便别人改一点。可以这样写: Draw_XY(y_org,x_org,Red);这样写谁都能看明白:y_org表示y轴的原点所在处。x_org表示x轴的原点所在处。Red表示画出的圆的颜色。写的程序就方便改了,代码也就很灵活。44. 程序中应该不要出现,延时1毫秒以上的程序,最好都是通过中断产生的。无论什么时候我们都要以实际应用的角度去考虑程序的书写。45. 对于一个程序员,如何释放CPU,这是写合格程序的基础。46. 以后写程序,将所有的Typedef、#define、常量的定义都放在一个头文件MacroandConst.h中。47. C中的头文件经常会用到枚举法这个概念,比如说吧,在头文件中,经常会出现以下的:enumblack,blue,red,color;在程序中是这样处理的。switchcase black: do something ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源汽车行业发展动向与市场前景研究报告
- 2025年绿色能源行业新能源技术与可再生能源研究报告
- 2025年金融科技行业区块链应用案例分析报告
- 2025中国化学工程第六建设有限公司总部机关所属基层单位空缺岗位公开招聘笔试题库历年考点版附带答案详解
- 2025年医疗保健行业远程医疗技术应用研究报告
- 2025年智能安防行业智能监控设备与智能安防系统研究报告
- 2025年数字化广告行业全球消费者洞察研究报告
- 2025南昌红投人力资源有限公司招聘派驻造价工程师5人考前自测高频考点模拟试题及一套参考答案详解
- 2025年上半年齐齐哈尔医学院附属第二医院公开招聘编制内工作人员20人考前自测高频考点模拟试题及答案详解(典优)
- 2025广东佛山市南海区狮山镇横岗小学招聘1人模拟试卷附答案详解(典型题)
- GB/T 45951-2025科技馆常设展览实施通用流程
- 新生儿硬肿症个案护理
- (2025)汽车驾驶员(技师)考试题库及答案
- 2025年全科医师转岗培训理论必刷试题库及答案
- 城市智能感知系统-洞察及研究
- 中储粮损耗管理办法
- 2025年《治安管理处罚法》新修订课件
- 【课件】有理数的加法(第1课时+有理数的加法法则)(课件)数学人教版2024七年级上册
- 透析患者血磷控制健康宣教
- 2025年江苏省苏州市中考数学模拟试卷(十三)(含答案)
- 项目制用工管理制度
评论
0/150
提交评论