佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1779|回复: 6

MSP430 新手学习(求救&研究贴)

[复制链接]
发表于 2-5-2013 08:48 PM | 显示全部楼层 |阅读模式
小弟最近研究了 MSP430G2452 和 MSP430G2553 这两个 是来自texas instrument
小弟买了他的 deplovement board 来玩 虽然有 energia  可以使用 arduino 的源码来操作 不过 小第要学习使用 Code Composer Studio v5 小弟一向来喜欢挑战高峰
小弟才刚学习..什么都不知道 连编制语言是什么来的也不会  最近玩了 arduino 建立了一些信心 学习 MCU 只是一个兴趣 用来来 DIY 自己喜欢的东西,向之前不能完成的电路报复
在这里小弟想要一边分享学习的过程 然新手一起来研究互相学习..

create CCS project( NEW -> CCS project


然后 选择 chip 的 number 小弟输入 MCU 上面的 number 然后跑出来 了
这次是参考了 Blink LED 的 example 然后写出来的

什么也不要clear 只是拿掉 retuen 0; 然后开始 setup



第一个 program

根据 example 写的.. agak agak 了解了 output Pin 的 setup
如果发现有错误 立刻投报 让小弟知错能改
int main(void)
不是很了解什么来的猜想应该和 arduino 的
  1. void setup(){
  2. }
复制代码
一样
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer

不知道是什么来的 读文章的是有提到很多东西需要放.. 小弟就算了把 听话照放

P1DIR <-- 应该是根据 MCU 的 data sheet 让 CCS 知道怎么 setup Pin 的 number 吧.. 好像小弟手上的 M430g2453 有 P1DIR 和P2DIR
LED red 接了 P1.0 LED green 接了 P1.4
pin setup
P1DIR =  P1.7, P1.6, P1.5, P1.4, P1.3, P1.2, P1.1   P2DIR = P2.5, P2.4, P2.3, P2.2, P2.1, P2.0
现在要 P1.4 = OUTPUT  所以
P1DIR |=  0001 0000   (binary)
                4      0      (HEX)
P1DIR |= 0x(告诉这个是 HEX number)   4(第一个 HEX number) 0( 第二个 HEX number)
P1DIR |= 0x40;
好像arduino 的
  1. int redLED = 13;
复制代码
复杂了很多..
接下来的东西就不是很了解了
怎样 turn ON pin 0x40  我试了 P1OUT = 0x40  
结果: LED 才亮  不了解当中的意思希望有高手来救救小弟
然后 (i = 0; i < 20000; i++);
好像 arduino 的
  1. delay(1000);
复制代码
不过这里的 delay 算法有点奇怪..
for i = 0 i 效果 20000 i 会一直增加到 20000, 这样就可以做出 delay 那么如果我想要做出 1 sec delay 该怎么算呢
最后一个暂时不能够了解
P1OUT ^= 0x40;
希望有高手可以救救小弟
如果把 ^= 换成 =   LED 就一直ON  加了 ^ 就可以 ON OFF ON OFF 了



回复

使用道具 举报


ADVERTISEMENT

发表于 2-5-2013 10:00 PM | 显示全部楼层
Code Composer Studio 没有用过。根据我的个人编程经验,希望能回答你的一些问题。

WDTCTL = WDTPW + WDTHOLD;是一个看门狗(Watch dog)代码,通常用来监视程序是否运行正常,如果有异常,将会自动重置。如果此时不关闭看门狗,程序运行一段时候将会自动reset

(i = 0; i < 20000; i++);不是真真的的delay指令,时间会不准。真真的delay可以参考Tutorial 2: TI LaunchPad MSP430 getting started
  1. #include <msp430.h>

  2. #define LED_RED BIT0                                        // Red LED

  3. void Delay_ms(unsigned int ms);

  4. // main function
  5. void main(void) {
  6.         WDTCTL = WDTPW + WDTHOLD;                // Set WDT to stop
  7.         P1DIR |= 0x01;                                // Set direction of the LED

  8.         while(1){
  9.                 P1OUT ^= LED_RED;                // Toggle P1
  10.                 Delay_ms(500);                        // Delay for 500 milliseconds
  11.         }
  12. }

  13. // The delay function (creates a delay in milliseconds)
  14. void Delay_ms(unsigned int ms){
  15.         while(ms--){
  16.         __delay_cycles(1000);
  17.         }
  18. }
复制代码
学习电子的都会认织Logic gate,也懂得什么是and,nand,or,not等等。
^= 就是Exclusive OR
用于toggle谋一个bit(谋一个输出/输入)
本帖最后由 西门庆33 于 2-5-2013 10:02 PM 编辑

回复

使用道具 举报

 楼主| 发表于 2-5-2013 11:17 PM | 显示全部楼层
西门庆33 发表于 2-5-2013 10:00 PM
Code Composer Studio 没有用过。根据我的个人编程经验,希望能回答你的一些问题。

WDTCTL = WDTPW + WD ...

感谢大哥的文章
回复

使用道具 举报

 楼主| 发表于 3-5-2013 12:23 PM | 显示全部楼层
西门庆33 发表于 2-5-2013 10:00 PM
Code Composer Studio 没有用过。根据我的个人编程经验,希望能回答你的一些问题。

WDTCTL = WDTPW + WD ...

大哥 小弟借问一下

P1OUT  = 00000000    // 青色 LED 的pin 现在要他亮   
P1OUT |= 01000000     //
P1OUT  = 01000000    // LED 亮了.. 现在要把它关掉

P1OUT   = 01000000
P1OUT ^= 01000000  
P1OUT  =  00000000    // LED 关掉了
道理是不是这样的啊 ?

想问问
P1OUT |= 0x40   // P1OUT(0000 0000)  |=(or)  0x40(0100 0000)  OUT = 0100 0000   
接下来的 P1OUT = 0100 0000
P1OUT &= 0x00  // P1OUT(0100 0000)  &=(And) 0x00(0000 0000) OUT = 0000 0000
现在 P1OUT = 0000 0000 了

P1OUT 的 value 是不是一直变的 ?

   
回复

使用道具 举报

发表于 3-5-2013 07:12 PM | 显示全部楼层
angels1026 发表于 3-5-2013 12:23 PM
大哥 小弟借问一下

P1OUT  = 00000000    // 青色 LED 的pin 现在要他亮   

说得头头是道。

P1OUT   = 0100 0000
P1OUT &= 0000 0000  
P1OUT  =  00000000  
只要&=全部是零,不管之前是什么值,结果全部都是零
回复

使用道具 举报

发表于 10-5-2013 10:20 PM | 显示全部楼层
哎呀,给你捷足先登了。还打算回来开贴的。
没关系,我也来贡献下。 留个脚印先。

不过,你用着的ccs v5是免费的吗? 因为上次我下载的时候,免费使用的版本只有ccs v4而且编程文件不准大过16KB。
回复

使用道具 举报

Follow Us
 楼主| 发表于 10-5-2013 11:20 PM | 显示全部楼层
免费的啊... 不过只能给 MSP430 用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-4-2024 07:20 AM , Processed in 0.061444 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表