ImageVerifierCode 换一换
格式:DOCX , 页数:4 ,大小:24.04KB ,
资源ID:9148258      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9148258.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(软件编程问题与错误的总结.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

软件编程问题与错误的总结.docx

1、我的总结 1. 在H文件中定义的变量可以再main函数中用,要包括头文件;但main之前定义的全局变量不能在头文件中用。(重复定义的错误)。 2. 在写程序时,必须首先画出它的程序流程图,也就是程序的走向。一步一步的将他在纸上写出来。 3. 调用数组函数时,数组一般用的是数组名。 4. 即使a、b是空类型(void)的函数,当a函数要调用b函数情况发生,b函数必须写在a函数的前面。 5. 遇到问题不要慌,认真对待!从软件开始,一步一步地排除原因,当实在找不出原因时,再检查硬件电路。 6. 在定义函数时,无论是形参还是全局变量都要对其初始化,既方便自己写程序,也减少了不必要的错误。

2、 7. 中断程序里不要定义变量,定义变量一般在主函数开始的时候。 8. 在调试程序中,我们要观察程序执行到哪里,可以用一个发光二极管去检测。 9. 用switch语句有时候可以让程序并行。 10. C语言中的结构体是一个重点。 11. 不要交叉调用C头文件。也就是在争论先有鸡还是先有蛋的问题。 12. 中断里不要又太长的程序,要是周期性中断,就必须保证有一定的阈值,否则程序就有可能跑错。 13. 当程序中需要用到一些并列的语句时,可以设置一个标志变量Flag。当情况一发生时,Flag会自行加加,否则清零。在接下来的另一种情况中让程序在Flag为0 的条件下执行。这样就达到了并列的效

3、果。 14. 变量一般不定义在H文件中,因为当两个C文件同时用到某个全局变量时,那么就相当于对全局变量定义了两次,实际上这是不允许的。正确的处理方法是在要用的时候进行变量定义,然后在H文件中进行申明,申明为外部变量。最后在C文件中区定义。 15. 静态变量和全局变量的好处就是:系统不会回收他们的内存。也就是说,他们会保持上一次的值,也就是他们与局部变量的不同。同样决定了他们的不足。 16. “->” 表示指向结构体运算符,它的结合方向是从左向右的,优先级最高。 17. x*x不能写作x^2,在C语言中,“^”表示按位异或的意思。 18. 定义结构体变量时,首先在H文件中申明,然后在C

4、文件中要定义一个与结构体相关的变量。这样在程序中才能应用。例如:先在H文件中申明一个结构体extern typedef struct A{…………}A; 然后再C文件中定义A Other;这样Other也具有和结构体A相同的形式。 19. 调用带指针操作的函数时,在形参的传递时,注意用的是取址操作符’&’,还是指针操作符’*’。 20. 对于乘除操作时,采用左移和右移的方法,比乘除执行的速度要快。 21. 在对信号采集时,我们经常会碰到数的更新。有两种方法。方法一:设定一个数组,每次先将a[i+1] = a[i],然后用当前值对a[0]进行更新。方法二:也是设定一个数组,在这里,处理的比

5、较简单。只需将最旧的那个数进行更新就可以了。也就是说第一次将当前值赋值给a[0],第二次赋值给a[1],以此类推,进行无限的循环。 22. 取表法是单片机程序中很常用的一种编程思想:要显示的数据之间不存在简单的运算关系,不能使用ADD和SUBB等指令根据上一个状态计算出下一个状态的显示值。但显示的数据存在依次取用的特点,这是一般就会用到取表法。 23. 很多时候可以单步执行,然后用示波器去检测输出口的波形, 看到底程序是否跑对。 24. 单片机与计算机进行串口通信时,计算机端一般只设定整数值的波特率,这样造成了单片机与计算机的通信的波特率不全相等,导致传输错误的发生。串口通信模块中有两条

6、指令经常用到:“JBC TI,CHECK”和“JB RI,CHECK”他们分别用来检测发送中断标志位TI和接收中断标志位RI,用来判断接收完成情况。 25. 边沿触发对电平的要求是:如果晶振为12MHz ,至少需要1个机器周期的高电平,且向低电平跳变之后至少保持一个机器周期的低电平。 26. 在主函数的内部,定义局部变量一定要放在任何函数或语句执行之前,否则肯定报错。 27. 对于一个程序,中断是一个很重要的东西,设置好中断,程序会很简单。 28. 有时候想问题不能死钻牛角尖,不是那里的问题,就不是。比如说有些I/O口的输入输出设置,是一个很玄乎的东西,想问题深入一点,细致一点。 2

7、9. 注意引脚输入输出的定义,特别是一些好的单片机,对引脚的输入输出有特殊的设置要求。例如:飞思卡尔的单片机的PE0和PE1只能作为固定输入。 30. 在很多时候应该想一些问题的另一面,如果SMOD为某一寄存器的一位, 其值只能是0或者是1.那么,2^SMOD = (SMOD + 1).有些运算就得到了简化。 31. 写程序时,应该尽量用一些“与或非”操作。例如一个寄存器PCON.如果有操作:PCON |=0x80(就是将PCON的最高位写1,其他位不管)。而如果有操作PCON &=0x80(就是将PCON的低七位都清零)。与或非操作能够大量的缩短程序执行的时间,增强了代码的可读性。 3

8、2. 对某一个端口的某些位进行操作时,不管其他位的状态,需要用到或与相关的知识。例如,对P3口的高四位进行读值时,不考虑低四位的状态。可以用一个&符号。即temp=P3&0xf0;这样低四位的值肯定全为零。而高四位就保持了状态。 33. AD9852_Data[0]=((unsigned char*)&FTW)[5]; 这条语句的意思是:第一步,&FTW是C中常用的一个取址的操作,取数组FTW的地址;第二步,对原本的数组FTW中的所有数据进行强制转换。第三步,是对数组中的数的取出。即FTW[5]。 34. #define AD9852_Set_IORESET()

9、 do{AD9852_IORESET_DIR = 1; AD9852_IORESET_OUT = 1;} while(0) 在以后有些函数用的比较多时,尽量在宏定义中去写。宏定义中的函数尽量都是最底层的函数,也就是没有调用任何函数,都是对寄存器的操作。 35. 宏定义的作用就是纯属的一个复制作用,它是把一些经常用到的函数写在宏定义中。这样的话就方便程序的修改。 36. DDRA&=0xF8; DDRA|=temp; 这两句操作第一句能保证低三位首先清零。Temp的值也就是你要定义的低三位的输入或

10、输出状态。这样的位操作在程序中用的比较多。应多加应用。 37. 当函数的形参是全局变量的时候,这个时候可以将形参省略不写,省略了不必要的代码,但是也增加了别人读代码的难度。 38. 有时候某些端口必须有触发功能,也就是说它是上电复位的,在系统板上按复位键和按运行键是有本质区别的。 39. 以后在写程序的时候尽量做到模块化,也就是说,在对端口的定义的时候,尽量不要直接写PORTA或者PORTB等。可以这样定义: #define Set_Rs PTS_PTS2 = 1 #define Clr_Rs PTS_PTS2 = 0 (定义它的控制字)

11、 #define ad9851_w_clk_dir DDRB_DDRB0 (定义输入输出方向) 这样写的话以后可以方便改写端口,增强程序的可移植性。 40. 有时候,数据需要转换,读数据的时候对应的输出端口的方向是输入,而写数据的时候对应的端口是输出。 41. 有的时候写程序的想法不能太死,比如说吧:a要从0到100,以10为步进,大多数人的想法是这样的,if(a>=0&&a<10) do something; else if(a>=10&&a<20) do something ……… 就这样一直写下去。现在我们回头来想一下,到底需要怎么写,可以减少程序的代码

12、量。我们可以向下面这样写: if(a>90) do something; else if(a>80) do something……… 从这样的操作可以看出,减少了代码量,还不会影响程序的执行。 42. 在以后的程序设计中,尽量写好程序的相关说明,最好像下面的所示: /***************************************************************** * 名 称:Test(void) * 功 能:测试液晶屏 * 入口参数:无 * 出口参数:无 * 说

13、 明:测试液晶屏是否正常工作 * 调用方法:Test(); ******************************************************************/ 43. 我们写的函数应该是容易让别人读懂的,更应该具有通用性。比如说画一个坐标轴xOy。就要写的方便别人改一点。可以这样写: Draw_XY(y_org,x_org,Red);这样写谁都能看明白:y_org表示y轴的原点所在处。x_org表示x轴的原点所在处。Red表示画出的圆的颜色。写的程序就方便改了,代码也就很灵活。 44. 程序中应该不要出现,延时1毫秒以上的程

14、序,最好都是通过中断产生的。无论什么时候我们都要以实际应用的角度去考虑程序的书写。 45. 对于一个程序员,如何释放CPU,这是写合格程序的基础。 46. 以后写程序,将所有的Typedef、#define、常量的定义都放在一个头文件MacroandConst.h中。 47. C中的头文件经常会用到枚举法这个概念,比如说吧,在头文件中,经常会出现以下的:enum{black,blue,red,………}color;在程序中是这样处理的。switch{case black: do something ;break; case red:do something ;break;………}这里情况默认的情况是这样的,black=0;blue=1;red=2;……所以称之为枚举法。当然也可以对初始的那个颜色赋值,例如:black=1;那么后面的数就会都加1.枚举法在头文件中经常会用到,要熟加掌握。 48. 头文件的定义中,如果代码写到了另外一行,一般情况下,要加上续行指令。续行指令的符号为“/”。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服