MSP430之枚举变量大小

发布者:czl55555最新更新时间:2020-03-11 来源: eefocus关键字:MSP430  枚举  变量大小 手机看文章 扫描二维码
随时随地手机看文章

一直都很好奇枚举变量到底是如何让占用存储空间的,网上好多文章都说是占用int字节的大小,但是今天测试了一下,发现不是那么回事。


操作系统:WIN7 64bit

IDE:IAR 5.5

实验平台: MP430F4793

先说结论:

实际使用发现枚举变量的大小并不是固定不变的,而是跟随成员的取值范围而变化,

并且枚举变量为2个字节(正好是MSP430字节对齐的大小)时,存储占用反而变小。


下面是编译后的结果:


初始情况:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

成员取值范围UINT8足以满足,所以是一个字节;

另外,增加成员并不会改变编译结果


给最后一个成员赋值65535:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时,成员的取值范至少需要两个字节才能存储,所以可以看到枚举变量的大小是2字节,另外,编译后所占的存储空间反而变小了。猜测可能和字节对齐有关系。


将第一个成员赋值-1:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

-1到65535,2个字节已经不够了,所以枚举变量扩大到了4字节。


赋值154554546545:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

枚举变量大小到了8字节。

关键字:MSP430  枚举  变量大小 引用地址:MSP430之枚举变量大小

上一篇:MSP430g2553硬件UART(基于官方例程的修改)
下一篇:MSP430之共用体中结构体字节对齐问题

推荐阅读最新更新时间:2024-11-13 02:47

MSP430单片机IO口简介
IO 口是处理器系统对外沟通的最基本部件,从基本的键盘、LED 到复杂的外设芯片等,都是通过IO 口的输入、输出操作来进行读取或控制的。 MSP430系列中,不同单片机的IO 口数量不同。体积最小的MSP430F20xx系列只有10 个IO,适合在超小型设备中应用;功能最丰富的MSP430FG46xx系列多达80个IO口,足够应付外部设备繁多的复杂应用。在MSP430FE425 单片机中,共有14个IO口,属于IO 口较少的系列。但由于需要大量引脚的设备,如LCD、多通道模拟量输入等都有专用引脚,不占用IO 口。因此在大部分设计中IO 数量还是够用的。 和大部分单片机类似,MSP430 单片机也将8 个IO 口编为一组。例如P
[单片机]
基于MSP430F149单片机的GPS定位数据采集系统设计
  0 引言   GPS(Global PosiTIoning System,全球卫星定位系统)以其高精度、全天候、全天时的特点,在定位、导航、测距、授时遥感等领域广泛应用,并得到了快速的发展。设计一种基于嵌入式系统的GPS定位数据采集系统,根据GPS信号接收原理和嵌入式技术,该设计完成了基于单片机和计算机实现GPS数据采集,并以良好的人机界面显示出系统所处的经纬度、海拔高度、X,Y坐标以及日期等信息,该系统已应用于某外场的车载定位试验中,代替了以前人工记录定位数据的烦琐,提高了效率。   1 系统描述   本设计利用TI的低功耗MSP430F149单片机的双串行接口,一路将GPS接收模块接收的定位信息数据传送至单片机,由单片
[单片机]
基于<font color='red'>MSP430</font>F149单片机的GPS定位数据采集系统设计
基于MSP430的车载防醉驾安全系统
自2011年5月1日起,刑法修正案(八)和修改后的《道路交通安全法》正式实施,醉酒驾车将被追究刑事责任。随着醉驾被以危险驾驶罪判处拘役的真正实施,媒体和社会各界对醉驾入刑问题更为关注。各个国家对有关酒精测试的仪器种类繁多,但因没有安装在汽车内部,而只能由交警手持仪器定点一对一地抽查,使得醉驾检查实施的范围狭窄,无法主动消除这一危险驾车行为,也就不能完全杜绝醉驾所引发的交通事故。 因此希望设计一款车载防醉驾安全系统,此车载防醉驾控制系统的设计分为两部分,其中酒精浓度检测判断部分安装在汽车方向盘附近,以便驾车人呼气检测;第二部分是酒精浓度超标控制点火部分,这部分电路与汽车点火器相连,控制点火和报警电路。这样就可以实现全范围的主动禁止醉驾
[单片机]
基于<font color='red'>MSP430</font>的车载防醉驾安全系统
MSP430F5529 (四)电源&&&(五)工作模式
我觉得电源管理与监控是一个很复杂很难掌控的部分,不仅涉及到到源模式的选择,还牵扯到复杂的中断、以及中断如何处理等等。虽然学好这一部分对实现降低功耗的目的很有帮助,但对于目前的我们来说貌似 功耗 一词还稍微远了点。此外,这部分控制对防止和处理供电意外( (过高过低等)的发生很有帮助,不过貌似这个开发板如果不独立拿来做项 项目而只是接在电脑USB供电的话,一般也不会有什么问题。所以,我也 也只打算简单学一下。(到后期有机会会再仔细学)。 I/O口和所有模拟单元包括晶振在内都由DVCC供电。内存(flash和RAM)和数字单元由核心电压VCORE供电。 DVCC:宽的电源电压范围1.8V-3.6V; VCORE:DVCC经低压降
[单片机]
<font color='red'>MSP430</font>F5529 (四)电源&&&(五)工作模式
设计基于MSP430单片机的微功耗中文人机界面
在现代便携式智能仪器或手持设备中,中文人机界面成为一种事实上的行业标准。能显示汉字的图形点阵液晶和可输进数字的小键盘已成为智能设备必不可少的组成部分。同时作为便携式设备基本要求的低功耗特性也贯串于中文人机界面的设计始终。 这种低功耗中文人机交互界面需要设计者在选取MCU和具体元器件上有特殊考虑。微功耗、小体积应作为选择相关器件的首要要求。 一、MSP430系列FLASH型单片机的微功耗特点 德州仪器公司(TI)推出的MSP430F14x系列是超低功耗Flash型16位RISC指令集单片机。它采用 冯-纽曼 结构,RAM、ROM和全部外围模块都位于同一个地址空间内。其具有丰富的片内外围,性价比极高。 MSP43
[单片机]
设计基于<font color='red'>MSP430</font>单片机的微功耗中文人机界面
MSP430单片机的软件IIC通信控制OLED
#include msp430g2553.h #include LQ12864.h void BCSplus_init(void) { BCSCTL2 = SELM_0 + DIVM_0 + DIVS_0; if (CALBC1_1MHZ != 0xFF) { DCOCTL = 0x00; DCOCTL = CALDCO_12MHZ; BCSCTL1 = CALBC1_12MHZ; /* Set DCO to 1MHz */ } BCSCTL1 |= XT2OFF +DIVA_0; BCSCTL3 = XT2S_0 + LFXT1S_2 + XCAP_1; } voi
[单片机]
MSP430数码管的使用Ⅲ
规范代码 #include msp430f149.h typedef unsigned char uchar; #define wei_h P5OUT |= BIT5 #define wei_l P5OUT &= BIT5 #define duan_l P6OUT &= ~BIT6 #define duan_h P6OUT |= BIT6 uchar table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar num = 0; void delay(int z) { int i
[单片机]
MSP430数码管的使用Ⅰ
首先应该了解数码管及其工作原理。了解你使用的是共阴还是共阳数码管,其次了解数码管的段选位选。 接下来是一个例程 #include msp430f149.h typedef unsigned char uchar; #define wei_h P5OUT |= BIT5 #define wei_l P5OUT &= BIT5 #define duan_l P6OUT &= ~BIT6 #define duan_h P6OUT |= BIT6 uchar table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved