IAR MSP430 bug 危险的取反操作

发布者:静雅心灵最新更新时间:2016-08-18 来源: eefocus关键字:IAR  MSP430  bug  取反操作 手机看文章 扫描二维码
随时随地手机看文章
    芯片是msp430f247,编译器是iar for msp430 V5.10,据说是最稳定的版本。
    今天却一下子发现好几个bug。。。。
第一个bug:
    语句 if ((packnum == UartA0Waitchar()) && (packnum ==(~UartA0Waitchar()) ) )被编译器直接编译没了,编译器认为这句话永远不会成立,而实际上 UartA0Waitchar()是个串口取字符函数,每次取回来的结果都不是一样的,这个if完全有可能成立。刚开始认为只要将编译器的优化取消即可,可是在将option->c/c++ compile ->Optimizations->level的值改为none后,if语句仍旧没了。。。。
 
第二个bug:
    定义了packnum/rcvpacknum1/rcvpacknum2三个变量,都是unsigned char类型的。在实际执行过程中,可以查看到packnum存储于R6中,值为0x0001,rcvpacknum1存储于R7中,值为0x0001,rcvpacknum2存储于R8中,值为0x00FE。
    1.语句packnum == rcvpacknum1,等式成立;
    2.语句packnum == ~rcvpacknum2,等式不成立;
    3.语句packnum == (unsigned char) ~rcvpacknum2,等式成立;
    等式2之所以不成立,是以为0x00fe取反后位0xff01,所以和packnum不相等。问题出现了,我在定义这3个变量的时候,已经明确声明了变量类型为unsigned char,为什么在实际比较的时候去比较16bit的宽度呢!!!!
对于第二个bug,有下图可以作证。
IAR MSP430 bug 危险的取反操作 - drifer - 自养荣卫
 
关键字:IAR  MSP430  bug  取反操作 引用地址:IAR MSP430 bug 危险的取反操作

上一篇:MSP430F149 单片机利用串口向PC发送数据
下一篇:430驱动的12864图形点阵LCD

推荐阅读最新更新时间:2024-03-16 15:05

MSP430G2553 1602显示字符
在网上查了 好多 ;好多都说下载进去就好用 然并卵 这个就写给自己以后看吧 不是很规范 仅供参考吧 下载进去应该就可以 但是3.3V供电的情况下很暗 还有2553毕竟就真么几个IO口 如果条件允许的话 可以这么浪费 这个代码数据端口是用P1传送的 但是P1端口 有各种常用的其他功能 所以实在要用的话 用P2作为数据口 比较好 把代码的中的端口改一下就可以了 不过 忠告一下:一定去手册里面仔细看看 IO的配置 虽然这个程序中问题不大 先直接附上代码: # include msp430G2553.h # define uchar unsigned char # define uint unsigned int # defi
[单片机]
STM8L在使用模拟IIC编程时遇到__iar_unhandled_exception的问题
最近,在使用STM8L051F3进行编程的时候,使用PC0和PC1进行模拟IIC编程,对于调试中出现的__iar_unhandled_exception的问题,对于该问题,自己的一些解决方法,并记录 对两种SDA配置方向的函数进行比较 方式1 DDR寄存器配置在CR1和CR2之前 方式2 DDR寄存器配置在CR1和CR2之后 在不开启中断的情况下,方式1 和方式2 在运行时,都没有发现问题。但是在开启中断后,方式1就会出现问题,在配置完DDR和CR1之后,函数就进入死循环,通过查看汇编可以看到如下代码 一直在这里面出不来,通过度娘的帮助,进入这里的原因是因为我们在使用寄存器编程时,大部分的中断函数没有编写,
[单片机]
STM8L在使用模拟IIC编程时遇到__<font color='red'>iar</font>_unhandled_exception的问题
教你如何下载并破解IAR
最近参加项目要写STM8的工程的,所以用到IAR,所以就自己安装了一次然后写个心得。 因为我用到的是STM8,所以我就下载了STM8的,不过其他过程都一样的。 首先去到IAR SYSTEMS的官网,找到你所要下载的系列下载。 下载完成后开始安装 然后一点就好了,这里的路径你们可以安装在你们喜欢的地方,我一般不安装在C盘 这里选择你们需要的就好,我除了第二个其他都选了,避免以后要用到又得下一次, 然后就到这了,这里就是刚刚你们选的工具,全点Next就行。 这样就安装完成了, 现在到了破解了, 我们点开菜单的Help,点击License Manager 就点击License的Offine Ac
[单片机]
教你如何下载并破解<font color='red'>IAR</font>
MSP430在单电池供电的LED照明中的应用电路
  便携式设备常采用单节的碱性电池供电,亦称作单电池供电。而LED 是发光二极管的简称,由于其省电、寿命长和开关速度快等特点,正被广泛应用到照明领域;而部分照明设备如自行车运动爱好者的车灯、头灯以及特殊要求手电筒等又要求能够便携以便于移动,所以对系统的功耗即电池的寿命有着严格的要求。本文针对低功耗、便携以及较低系统成本LED 照明的要求,基于超低功耗单片机MSP430 以及升压转换器TPS61200,设计并完成单电池供电的LED 照明应用。   LED 驱动电路模块   对于单节电池供电的LED 照明设备,首先要选用升压芯片为LED 提供电源以保证LED 的正常导通。这里我们选用了TPS61200,其工作电压为0.3~5.5V
[单片机]
<font color='red'>MSP430</font>在单电池供电的LED照明中的应用电路
利用MSP430定时器A测量脉冲宽度
1-程序描述 利用MSP430单片机定时器A和捕获/比较功能模块结合使用,实现脉冲宽度的测量。 本例程用到了定时器A的CCI1A端口(例如MSP430F14X的P1.2引脚)作捕获外部输入的脉冲电平跳变,同时结合简单的软件算法就能实现脉冲宽度的测量。在实际应用中可根据例程中的start,end,overflow三个变量来计算脉冲宽度。此功能模块在实际产品应用中体现出有较高的应用价值。 2-例程 #include msp430x14x.h unsigned int start,end; unsigned char overflow; void main (void) { WDTCTL= WDTPW+WDTHOLD;//关闭
[单片机]
msp430入门学习15--时钟
MSP430的时钟系统本来是单片机的重点,但是现存的教材中,很少有专门的章节讨论的,大多只是对官方文档的翻译,因此做此文。 一、单片机的时钟我把它分为三个层次,硬件底层,应用抽象层,应用层,分别说明:   硬件底层:  1、LFXT1,也就是低频时钟电路          2、XT2,也就是高频时钟电路          3、DCO振荡器,也就是单片机内部的RC振荡器   为什么这么设置:0、ti的msp430单片机为了尽可能减小用户使用的难度,降低电路设计的难度,自带了震荡电路便于使用,也就是说无需像51单片机那样最小系统中必须要一个晶振,简化为最小系统只要有供电就基本开始开始干活了;   1、DCO作为RC振荡器,主
[单片机]
<font color='red'>msp430</font>入门学习15--时钟
MSP430教程12:MSP430单片机MSP430定时器
在MSP430系列单片机中带有功能强大的定时器资源,这定时器在单片机应用系统中起到重要的作用。利用MSP430(以下称为430)单片机的定时器可以用来实现计时,延时,信号频率测量,信号触发检测,脉冲脉宽信号测量,PWM信号发生。另外通过软件编写可以用作串口的波特率发生器。后面我们将用定时器A作为一个波特率发生器,来编写一个串口例程给初学者参考。以加强初学者对定时器A的理解和应用。 在430的大系列产品中,不同的子系列产品定时器资源有所不同;在F11X,F11X1中是不带定时器B资源的。430的定时器主要分为3部分模块:看门狗定时器,定时器A,定时器B。定时器A主要资源特点有16位定时计数器,其计数模式有4种。多种计数时钟信号供
[单片机]
基于MSP430F149单片机的多路无线温度检测系统
温度在人类日常生活中扮演着极其重要的角色,同时在工农业生产过程中,温度检测具有十分重要的意义。现阶段温度检测主要是有线定点温度检测,其温度检测原理为单片机利用温度传感器检测温度,并在数码管或LCD 上进行温度显示。同时由于系统没有报警功能,故需要人为来判断是否需要进行升温或者降温,这使系统的检测丧失了实时性。另外,在某些环境恶劣的工业环境,以人工方式直接操作设置仪表测量温度也不现实,因此采用无线方式进行温度检测尤为必要。 目前有些设计能够实现无线温度采集,但功耗过高是其最大的缺点。在实际温度控制过程中既要求系统具有稳定性、实时性,又需要使系统功耗低及保证温度的均匀性,因此设计一种低功耗的多点无线温度检测系统很有意义。本文
[单片机]
基于<font color='red'>MSP430</font>F149单片机的多路无线温度检测系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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