历史上的今天
今天是:2025年02月05日(星期三)
2020年02月05日 | 单片机开发中应掌握的几个技巧
2020-02-05 来源:eefocus
在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握的几个基本技巧。
一、如何提高C语言编程代码的效率
邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”
二、如何解决单片机的抗干扰性问题
邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。
一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。
三、如何测试单片机系统的可靠性
有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:
1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件的写的正确完整。
2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。
3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。
4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。
邓宏杰强调:“还可以模拟人为使用中,可能发生的破坏情况。例如用人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。”
上一篇:pic 单片机应用问答14篇
下一篇:PIC单片机电源供电设计经验
史海拾趣
|
集成步进电机控制+驱动功能,带有StallGuard失速检测功能-TMCM-110 TMCM-110-42 智能型步进电机控制+驱动体积小巧,可直接安装在42mm电机尾部使的结构更加紧凑,只需外部的电源即可运行程序。在TMCL-IDE软件编程环境下支持TMCL编程指令。TMCL程 ...… 查看全部问答> |
|
在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。因此, ...… 查看全部问答> |
|
我买了一个EasyARM2131 但是在使用EasyJTAG仿真的时候出现了这样的问题 请问各位 我是哪里出了问题 DBE Warning 00041:An unspecified Debug Toolbox call failed… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:46 编辑 在一个有严格功耗要求的系统中,供电电源的设计不能够采用简单的方式来完成,必须对所采用电源电路结构仔细考虑[3~6]。 线性稳压电路 线性稳压电路(包含LDO)其特点是电 ...… 查看全部问答> |
|
运行BoardTestSystem.exe时出现的提示: Connecting to the target... java.lang.Exception: No BoardTestSystem-compatible design exists in the FPGA. Please select a design from the configure menu. 但板子是插上了的: … 查看全部问答> |
|
想实现两个通道的AD连续转换,不会DTC,想用自己编程实现但AD转换结果只有一个,而且多通道序列转换时只能选择最高的通道,自己刚学MSP430,说的不是很清楚,希望大家指导一二,不胜感激! … 查看全部问答> |
|
CC2530如何在单片机程序中获得secondary IEEE地址 NLME_GetExtAddr(); 获得设备的64位IEEE地址 NLME_GetCoordExtAddr(); 获得设备父节点的IEEE地址 Zstack库函数中有这两个函数来获取IEEE地址。 但通过 smartRF flash programmer可 ...… 查看全部问答> |




