【转贴】msp430的C语言与C51的一点区别!

[复制链接]
 楼主| 3B1105 发表于 2011-11-29 17:09 | 显示全部楼层 |阅读模式
C430与C51语法上基本一样,但是编程有些地方要注意,以下是我遇到的:

        1.如果要判断P2.0是否为1,C51可以写为:if( P2&BIT0 == BIT0 ) ,但是在C430会得不到结果,要写为:if(
        (P2&BIT0) == BIT0 ) 才对。

        2.在C51中如果要让程序等待可以直接用while(1),但是写C430程序时我曾经遇到while(1)无效,后来发现是我没设置WDT,加入WDTCTL
        = WDTPW+WDTHOLD,一切正常。

        3.C51有bit flag等指令来定义位,而MSP430没有相关指令,但是可以这样实现:先定义一个变量 uchar
        flag,这样就有8个位变量可以使用,
        假设C51有这样的程序:
        bit rflag;
        rflag = 0;
        while(rflag==0); //等待
        在C430里可以写成:
        uchar flag;
        flag &= ~BIT1;
        while( (flag&BIT1) != BIT1 );
        效果一样
金鱼木鱼 发表于 2011-11-30 19:23 | 显示全部楼层
区别微乎其微
永远的不知 发表于 2011-11-30 19:58 | 显示全部楼层
第2条,如果开了看门狗不喂狗,程序自然会复位。
hawksabre 发表于 2012-5-28 16:17 | 显示全部楼层
区别不大  看看  呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://yiguibugui.taobao.com/

315

主题

1645

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部