TA的每日心情 | 开心 2023-5-15 15:14 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
有很多刚入行的初学者工程师在单片机这个领域经常是蒙圈的状态,完全不知道该从何下手,在开发过程中:代码的使用效率问题、单片机抗干扰性、可靠性等问题经常困扰着他们。为此,小编归纳总结出单片机开发中应该掌握的四大基本技巧,不要错过哦~$ ]- R9 `2 I T
% q2 _! j0 P9 |- Y$ [/ T
( P% J2 j$ g& K- a& A' e$ g
, G5 K, [- K# x9 _- A1 ?一、如何提高C语言编程代码的效率- \* H0 N! L6 _: c+ v- M
/ X7 C# I. I% g% t! x; P
用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。 先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。
' f _# o5 [- y4 i) b, E( w7 C3 w B6 x q! y3 t1 i* J
各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长 5-20%。+ z! E. R& H7 I6 i
, Z' l1 S7 ~5 D/ H3 j3 ~
对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该mcu系统的C语言和C编译器非常熟悉,特别要注意该C编译系统 所能支持的数据类型和算法。: B. H3 d0 H4 M
) A* z, d, z3 C0 w: P7 L" g& n& P虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。
+ P; o# }( Q5 o9 N/ ]6 Z0 O7 }* R: X6 J% _/ ?
二、如何减少程序中的bug?
+ z- k1 P* K; g1 q$ W# g0 ^( L$ c
对于如何减少程序的bug,给出了一些建议,指出系统运行中应考虑的超范围管理参数有:
( I& j) b, C& f5 V1 `; t& x) T ^; Y% R- C# }
1.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。- q" r! @" a( b+ d+ X; Z0 T
! g3 h8 G8 {. g' n( ~4 c6 K4 S3 ^
2.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。3 V8 N! w, J' Y4 o+ U7 O; ~
m. e+ {: D# V7 W, X
3.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦写次数与资料存储时间等应用参数界限。2 q0 R# Q$ b5 j+ o" ^& T" K
( D8 ^7 f0 F1 {+ M- \4.过程参数。指系统运行中的有序变化的参数。
0 O, x! d5 i% K+ q) a- F" Q! Z9 e8 M! Y9 d! J
9 K) b% {1 x( U p' |- Q* h1 `; e" S0 z
$ o4 S% v/ _- w1 k/ i5 e! p1 ^0 Y! B
三、如何解决单片机的抗干扰性问题3 p7 O1 ^) R. n$ \* S
- M" v* u i4 u
防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是 复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。* W; Q3 y3 R4 @& @+ m C8 V
5 A) b, _8 q+ e1 _! E3 L) a一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标 志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。: y0 q8 U: N7 ]+ u. |' E; U5 f6 K" h
* w* }/ X( S' e% `' W7 V. z
四、如何测试单片机系统的可靠性/ u1 u, u4 N z) @& k
* f- L- k0 Q. \2 B8 T- G7 t
有读者希望了解用用什么方法来测试单片机系统的可靠性“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:- ^& O. O' C7 L% \+ s7 t
' W- K @, L+ {/ C4 j1 h8 B B
1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。
; t% |! o; {: ^$ S
4 r$ X: q, M) j) {0 f2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。% F* D2 k& j# T; |
. r( S* {, U" ~3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
C3 K0 m0 y( |6 U
& i- \2 X2 p' a: c0 R6 a4 S4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
" J" z: {, ]6 z
" S5 A* i" d# H还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。3 R; X0 e; n4 @# ?3 V+ ]- p& }" c
" ~/ ?5 Y( z. S4 H4 X% o1 j; J
以上四大技巧,你学会了吗?学会不重要,运用的好才是重点!! h" I. j: @( l/ o6 y
; ~' l( |5 a8 X
|
|