您好、欢迎来到现金彩票网!
当前位置:手机棋牌游戏平台 > 位操作 >

MSP430 位操作C语言编程

发布时间:2019-07-03 22:23 来源:未知 编辑:admin

  随着MCU 种类不断的增多,我们可选择的范围也越来越大,以前很多做51 的朋友,又开始为自己寻找新的猎物了,无疑成为他们的首选目标。因此,大多数程序员想轻松地实现过渡,那就是,把以前做的51C 程序尽可能多的移植到平台中,很不幸,由于处理器架构不同,直接做这些工作起来确实相当困难。首先是问题,51 程序中充彻着大量的位操作,因此,不得不采用变通的方法来做,以下描述了在IAR 编译平台中实现位操作的大致方法,但必须注意到,采用IO 头文件方式的程序,能够实现类似于51 的位编程语句,但并不是真正的位操作,仅仅是语法表达为一个位操作。

  我们来看对一个端口中位0(BIT0)的位操作程序是如何实现的,因此,假定P1.0 是输出,P1.1 是输入。

  从某种程度上,这种编程方法具备高级语言的编程特点,具有很好的可读性,可移植性也不错,也是目前用的比较多的方法。但是缺点,是不能把宏定义统一起来,每个宏需要程序员自己定义,由此,在多项目管理中,对代码的移植性带来了一些问题。同时,也存在着一些潜在的问题,例如,无意的错误定义等。这给程序调试多多少少带来一些负面影响。

  IAR 除了提供目前我们经常使用的mspx43xxx.h 头文件外,其实,也定义了可以进行位操作的寄存器结构定义。还是以P1 口的BIT0,BIT1 为例。这个头文件就是io 头文件,根据不同的器件,命名为io430xxx.h,在这些头文件中,将每个寄存器封装到一个联合结构中,因此,我们既可以象方法1 一样,通过自己定义宏,实现自己的位操作,也可以像51 一样,进行位操作。使用方法如下:

  IO 方法,表述方法没有方法1 好。但是比较直接,当然,为了更好的可读性,可以再次重新定义宏。如下:

  如此定义后,可直接使用方法1 编制的源代码,唯一的,需要修改方法1 所定义的宏了。

  两种方法产生的汇编代码,是相同的,仅仅是对同一个对象的不同表述而已。建议用户采用io 定义方法,因为,io 定义几乎包含了mspx430xxx.h 的所有定义,一般而言,可以直接替换。此外,用这两种编程时,建议中断和低功耗采用如下函数,他们包括在头文件intrinsics.h 中。

http://tritecbuilding.com/weicaozuo/313.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有