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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2023年软件编程问题与错误的总结.docx)为本站会员(sc****y)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

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

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

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

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

4、应用。例如:先在h文件中申明一个结构体externtypedefstructaa;然后再c文件中定义aother;这样other也具有和结构体a相同的形式。 19.调用带指针操作的函数时,在形参的传递时,注意用的是取址操作符,还是指针操作符x。 20.对于乘除操作时,采用左移和右移的方法,比乘除执行的速度要快。 21.在对信号采集时,我们经常会碰到数的更新。有两种方法。方法一:设定一个数组,每次先将ai+1=ai,然后用当前值对a0进行更新。方法二:也是设定一个数组,在这里,处理的比较简单。只需将最旧的那个数进行更新就可以了。也就是说第一次将当前值赋值给a0,第二次赋值给a1,以此类推,进行无

5、限的循环。 22.取表法是单片机程序中很常用的一种编程思想。要显示的数据之间不存在简单的运算关系,不能使用add和subb等指令根据上一个状态计算出下一个状态的显示值。但显示的数据存在依次取用的特点,这是一般就会用到取表法。 23.很多时候可以单步执行,然后用示波器去检测输出口的波形,看到底程序是否跑对。 24.单片机与计算机进行串口通信时,计算机端一般只设定整数值的波特率,这样造成了单片机与计算机的通信的波特率不全相等,导致传输错误的发生。串口通信模块中有两条指令经常用到:“jbcti,check和“jbri,check他们分别用来检测发送中断标志位ti和接收中断标志位ri,用来判断接收完成

6、情况。 25.边沿触发对电平的要求是。如果晶振为12mhz,至少需要1个机器周期的高电平,且向低电平跳变之后至少保持一个机器周期的低电平。 26.在主函数的内部,定义局部变量一定要放在任何函数或语句执行之前,否那么肯定报错。 27.对于一个程序,中断是一个很重要的东西,设置好中断,程序会很简单。 28.有时候想问题不能死钻牛角尖,不是那里的问题,就不是。比方说有些i/o口的输入输出设置,是一个很玄乎的东西,想问题深入一点,细致一点。 29.注意引脚输入输出的定义,特别是一些好的单片机,对引脚的输入输出有特殊的设置要求。例如:飞思卡尔的单片机的pe0和pe1只能作为固定输入。 30.在很多时候应

7、该想一些问题的另一面,如果smod为某一存放器的一位,其值只能是0或者是1.那么,2smod=(smod+1).有些运算就得到了简化。 31.写程序时,应该尽量用一些“与或非操作。例如一个存放器pcon.如果有操作:pcon|=0x80(就是将pcon的最高位写1,其他位不管)。而如果有操作pcon=0x80(就是将pcon的低七位都清零)。与或非操作能够大量的缩短程序执行的时间,增强了代码的可读性。 32.对某一个端口的某些位进行操作时,不管其他位的状态,需要用到或与相关的知识。例如,对p3口的高四位进行读值时,不考虑低四位的状态。可以用一个符号。即temp=p30xf0;这样低四位的值肯定

8、全为零。而高四位就保持了状态。 33.ad9852_data0=(unsignedcharx)ftw)5;这条语句的意思是:第一步,ftw是c中常用的一个取址的操作,取数组ftw的地址;第二步,对原本的数组ftw中的所有数据进行强制转换。第三步,是对数组中的数的取出。即ftw5。 34.Xdefine ad9852_set_ioreset doad9852_ioreset_dir=1; ad9852_ioreset_out=1;while(0) 在以后有些函数用的比较多时,尽量在宏定义中去写。宏定义中的函数尽量都是最底层的函数,也就是没有调用任何函数,都是对存放器的操作。 35.宏定义的作用就

9、是纯属的一个复制作用,它是把一些经常用到的函数写在宏定义中。这样的话就方便程序的修改。 36.ddra=0xf8;ddra|=temp;这两句操作第一句能保证低三位首先清零。temp的值也就是你要定义的低三位的输入或输出状态。这样的位操作在程序中用的比较多。应多加应用。 37.当函数的形参是全局变量的时候,这个时候可以将形参省略不写,省略了不必要的代码,但是也增加了别人读代码的难度。 38.有时候某些端口必须有触发功能,也就是说它是上电复位的,在系统板上按复位键和按运行键是有本质区别的。 39.以后在写程序的时候尽量做到模块化,也就是说,在对端口的定义的时候,尽量不要直接写porta或者por

10、tb等。可以这样定义:Xdefineset_rspts_pts2=1Xdefineclr_rspts_pts2=0(定义它的控制字) definead9851_w_clk_dirddrb_ddrb0(定义输入输出方向) 这样写的话以后可以方便改写端口,增强程序的可移植性。 40.有时候,数据需要转换,读数据的时候对应的输出端口的方向是输入,而写数据的时候对应的端口是输出。41.有的时候写程序的想法不能太死,比方说吧:a要从0到20230,以2023为步进,大多数人的想法是这样的,if(a=0a=2023a90)dosomething;elseif(a80)dosomething从这样的操作可以

11、看出,减少了代码量,还不会影响程序的执行。42.在以后的程序设计中,尽量写好程序的相关说明,最好似下面的所示:/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx名称:test(void)x功能:测试液晶屏x入口参数:无x出口参数:无 x说明:测试液晶屏是否正常工作x调用方法:test;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/43.我们写的函数应该是容易让别人读懂的,更应该具有通用性。比方说画一个坐标轴xoy。就要写的方

12、便别人改一点。可以这样写: draw_xy(y_org,x_org,red);这样写谁都能看明白:y_org表示y轴的原点所在处。x_org表示x轴的原点所在处。red表示画出的圆的颜色。写的程序就方便改了,代码也就很灵活。44.程序中应该不要出现,延时1毫秒以上的程序,最好都是通过中断产生的。无论什么时候我们都要以实际应用的角度去考虑程序的书写。45.对于一个程序员,如何释放cpu,这是写合格程序的根底。 46.以后写程序,将所有的typedef、Xdefine、常量的定义都放在一个头文件macroandconst.h中。47.c中的头文件经常会用到枚举法这个概念,比方说吧,在头文件中,经常会出现以下的:enumblack,blue,red,color;在程序中是这样处理的。switchcaseblack:dosomething;break;casered:dosomething;break;这里情况默认的情况是这样的,black=0;blue=1;red=2;所以称之为枚举法。当然也可以对初始的那个颜色赋值,例如:black=1;那么后面的数就会都加1.枚举法在头文件中经常会用到,要熟加掌握。 48.头文件的定义中,如果代码写到了另外一行,一般情况下,要加上续行指令。续行指令的符号为“/。 第8页 共8页

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2