电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

单片机编程留心思项

2017-04-08 12:33分类:PLC基础知识 阅读:

 

在单片机编程的进程中,假定一名计划者可以一同把握多门编程言语,那么这名计划者必定是一位十分优良的人才。但是想要一同通晓汇编、C言语、C++这三门言语真实是太难了,许多初专家在其间一门的学习中就现已处处受阻,苦不胜言。这篇文章特意为咱们拾掇了具有嵌入式编程领域多年作业履历的工程师定见,汇总成了一篇可以对嵌入式编程履历有着履历含义的留心思项,感喜欢的兄弟快来看一看吧。
在单片机嵌入式编程中,最难的两有些是interrupt和MM(memorymanage),之所以有人觉得并不艰难,那是由于太大都状况下芯片制作商都现已直接写好,但是假定计划者自身就在为芯片制作商作业,那就有必要自个会写装备文件。
这两个东西之所以比照难是由于要用汇编或类C来写,归于比照低层的东西,接连有外部接连和内部接连,外部接连有两种完毕办法,硬件接连办法和软件接连办法,相对来说比照简略,归于运用层面的,比照之下,内部接连就要杂乱得多,内部接连首要是发作重起,总线犯错、溢出、校验犯错等状况发作的,许多软件开发人员底子上不写对应的接连效劳程序,由于它太难了并且通常也用不到。但是一旦发作,那即是丧命过失,因而从悉数体系强健性来思考有必要要有相应的ISR才行,这也是freescale的专家主张的,因所以下面就谈一下嵌入式编程应当留心的疑问。
延时
嵌入式编程常常会触及到硬件的操作,如ADC,翻开或许封闭一个电流源,这些都是需求时刻的,因而当在宣告这些指令的时分当即读取寄存器的值是得不到想要的效果的,并且还找不出要素,有时分需求的延时还比照长,抵达ms级,通常状况下us级就够了,依据各芯片的时钟频率而定,不单指MCU的总线时钟频率。
变量
通常来说假定十了解晰某个变量的效果域和生命周期就应当界说相对的变量,如const、static等,这么不简略犯错,不主张将悉数变量都界说满意局变量,这么处理起来比照费事,程序一旦犯错,损坏性也比照大,函数也是如此,全局变量和通用函数必定要声明,这么在调用的时分不简略犯错,并且有些编译器关于未声明的函数是不会报错的,但在调用的时分又会宣告类型隐含改换的正告,在这儿就不举比方了,总归这点要分外留神。
宏界说
在程序编写进程关于一些特定的数字应当尽量运用宏界说,这么做有个利益即是比照直观,便于日后保护,要否则时刻久了看到那个数字底子就想不起它代表啥意思,宏界说并不会给程序带来任何背负,由于它在编译的时分就现已悉数代替了,所以尽可以广而用之。值得一提的是宏界说并不绑缚于运用常量,它可以界说函数,由于它是直顶更换,因而防止了入栈和出栈,跋涉了程序施行的功率,其时一同添加了代码量,因而通常用比照简略的函数,它还有一个缺陷是在更换的进程不查看参数类型是不是正常,然后添加了安全危险,处理此疑问的办法是运用一个称之为inline的内联函数,它承继了宏界说的利益,又抵偿了它的缺陷,是个最好的挑选,但是这个归于C++的领域,有必定的难度,在这儿也不多讲,有喜欢的兄弟可以参看一下有关材料。
浮点运算
大大都低层次的单片机都是不支撑浮点运算的,因而在实习运用进程中也很少用到,因而为了下降本钱,通常都去掉了浮点运算模块,这就带来了一个疑问,假定假定要用到浮点运算怎样办仔细的兄弟或许会发现,即便不具有浮点运算的单片机在仿真调试进程仍然可以运用floatordouble的数据类型进行核算,并且效果也很准确,这是为啥呢这个由于编译器主动调用了库函数来完毕的,通常是经过迭代的办法,因而它的施行功率十分慢,不主张选用此办法,而通常选用的是“定点”的办法来处理这个疑问,比方说一个32bit的数据,可以假定它的低8位是小数位,然后移位核算,相似于整数运算,这种办法比照杂乱,但是可以十分准确,还有一种办法即是直接拓宽10的N次方倍进行整数的核算,可以得出近似值,因而为了不添加不用要的费事,应当老是尽量防止运用浮点运算,通常状况也都是可以防止的。
watch dog
以三重watch dog为例,watch dog1查看时钟频率,watch dog2监督一小段代码,它有必要在一个比照短的时刻里喂一次,通常恳求在250us到650us之间喂一次,watch dog3监督一大段代码,恳求在比照长的时刻内喂一次,通常是100ms以内,三个条件有必要一同满意才行,这恳求对代码的施跋涉程十分了解,或许将致使喂狗犯错重起。
这儿需求向咱们偏重的是,在单片机嵌入式的编程进程中程序的好坏通常是由细节挑选的,一个程序写的是不是具体、活络,是与铢积寸累的知识堆集与实习训练成正比的。尽管编程是定见十分单调乃至庸俗的进程,但成功后的高兴可以让咱们信赖这份支付是值得的。

上一篇:单片机最小体系电路计划

下一篇:啥是单片微型核算机

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部