MSP学习的一些小心得
现在正在学习MSP430F149,刚刚开始学,有很多的东西都不懂,所以写的东西都很浅显,希望给正在学习的朋友一点点的借鉴。1.在刚开始用这个开发板的时候,程序可以烧进去,但是开发板没有响应工作,工作电压都是正确的,最后用示波器测8M晶振发现没有起振,原来是上电的时候,晶振烧坏了。换过后正常工作。
2.在用这个芯片之前用的是STC的单片机,像51之类的都是可以单独定义每个I/O口,而MSP430则定义的是8个I/O。如果需要用某一个单独的I/O口的话,需要自己赋值。
例如,利用宏定义P1^1为led.让这个灯实现关灭
那么程序的编写 #define led_on P1OUT&=0xfe//把P1口的低位置0(1111 1110)
#define led_off P1OUT&=0xff //把P1口的地位置1
主程序中直接调用 led_on、led_off 即可 #define led_off P1OUT&=0xff //把P1口的地位置1
你觉得可以置1吗? 大佬,麻烦你想清楚再写{:mad:}{:dizzy:} 本帖最后由 delay_year 于 2012-11-30 01:15 编辑
其实可以对每个IO口操作的,比如说P1.1,先设为输出:P1DR|=BIT1; 再输出低电平:P1OUT&=~BIT1; 也可以单独对某些IO操作,比如设为输出:P1DIR|=BIT0+BIT1+BIT2;
这种方法既直观,又容易理解。 P1OUT&=~0x01//把P1口的低位置0(1111 1110)
P1OUT|=0x01 //把P1口的低位置1 有不少错误,楼主加油! 先设置P1SEL,再P1DIR,然后才P1OUT 对于新手,我们应当给予鼓励.
#define led_off P1OUT&=0xff //把P1口的地位置1
这个能把P1 口置1的是错误的
建议楼主多看看官方的例子. lz的c语言功底还不够扎实,多学习 多看看430的例程和头文件,楼主就能发现正确的写法,比较规范的 MSP430太贵了吧,也不好买。 哈哈
430现在价格还算可以 比以前要便宜多了
而且小东西还有G系列 |= (1<< Bit_number);//置1
&= ~(1<<Bit_number);//清零
^=//取反
页:
[1]