社区导航

 

搜索
查看: 736|回复: 0

[原创] 【挑战Energia-ID0501A】5 Energia开发项目

[复制链接]

280

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-3-30 11:58 | 显示全部楼层 |阅读模式
5 Energia开发项目示例
5.1 项目说明采用MSP430launchpad进行一个LED轮流点亮的程序设计。
IMG_20150923_165526.jpg
5.2 使用的设备
MSP430G2553-Launchpad,
8个LED灯
小型面包板和跳线等
供电的3V纽扣电池板。

5.3 使用的软件,只用Energia就可以了。

5.4 程序开发
首先需要定义8个LED灯的引脚和控制,这里每个LED使用一对引脚,这样20个引脚全部用上了。G2231只有14个引脚,就不能够用了。
Pin 2 | + LED 1
Pin 3 | - LED 1
Pin 4 | + LED 2
Pin 5 | - LED 2
Pin 6 | + LED 3
Pin 7 | - LED 3
Pin 8 | + LED 4
Pin 9 | - LED 4
Pin 10 | -

Pin 11 |  + LED 5
Pin 12 | - LED 5
Pin 13 | + LED 6
Pin 14 | - LED 6
Pin 15 | + LED 7
16 is RESET - 设置为高电平时有效
17 is TEST-测试按键
Pin 18 | - LED 7
Pin 19 | + LED 8
Pin 20 | - LED 8
  1. void setup() {               
  2.   // initialize the digital pin as an output.
  3.   pinMode(2, OUTPUT);  // + LED 1
  4.   pinMode(3, OUTPUT);  // - LED 1
  5.   pinMode(4, OUTPUT);  // + LED 2
  6.   pinMode(5, OUTPUT);  // - LED 2
  7.   pinMode(6, OUTPUT);  // + LED 3
  8.   pinMode(7, OUTPUT);  // - LED 3
  9.   pinMode(8, OUTPUT);  // + LED 4
  10.   pinMode(9, OUTPUT);  // - LED 4
  11.   pinMode(10, OUTPUT); // -
  12.   
  13.   pinMode(11, OUTPUT); // + LED 5
  14.   pinMode(12, OUTPUT); // - LED 5
  15.   pinMode(13, OUTPUT); // + LED 6
  16.   pinMode(14, OUTPUT); // - LED 6
  17.   pinMode(15, OUTPUT); // + LED 7
  18.   // 16 is RESET
  19.   // 17 is TEST
  20.   pinMode(18, OUTPUT); // - LED 7
  21.   pinMode(19, OUTPUT); // + LED 8
  22.   
  23.   // set the simulated GND pins low
  24.   digitalWrite(3, LOW);
  25.   digitalWrite(5, LOW);
  26.   digitalWrite(7, LOW);
  27.   digitalWrite(9, LOW);
  28.   digitalWrite(10, LOW);
  29.   digitalWrite(12, LOW);
  30.   digitalWrite(14, LOW);
  31.   digitalWrite(18, LOW);
  32. }

  33. // the loop routine runs over and over again forever:
  34. void loop() {
  35.   allOn(1000);
  36.   allOff(1000);
  37.   allOn(1000);
  38.   allOff(500);
  39.   oneByOne(500);
  40.   
  41. }

  42. void allOn(int delaytime) {
  43.   digitalWrite(2, HIGH);  // LED 1 ON
  44.   digitalWrite(3, LOW);
  45.   digitalWrite(4, HIGH);  // LED 2 ON
  46.   digitalWrite(5, LOW);
  47.   digitalWrite(6, HIGH);  // LED 3 ON
  48.   digitalWrite(7, LOW);
  49.   digitalWrite(8, HIGH);  // LED 4 ON
  50.   digitalWrite(9, LOW);
  51.   digitalWrite(11, HIGH); // LED5 ON
  52.   digitalWrite(12, LOW);
  53.   digitalWrite(13, HIGH); // LED 6 ON
  54.   digitalWrite(14, LOW);
  55.   digitalWrite(15, HIGH); // LED 7 ON
  56.   digitalWrite(18, LOW);
  57.   digitalWrite(19, HIGH); // LED 8 ON
  58.   delay(delaytime); // delay 1 second
  59. }

  60. void allOff(int delaytime) {
  61.   for(int i=2; i<20; i++) {
  62.     digitalWrite(i, LOW);  // LED 1 ON
  63.   }
  64.   delay(delaytime); // delay 1 second
  65. }

  66. void oneByOne(int delaytime) {
  67.   for(int i=2; i<20; i++) {
  68.     digitalWrite(i, LOW);  // LED OFF
  69.   }
  70.   digitalWrite(2, HIGH);  // LED 1 ON
  71.   digitalWrite(3, LOW);
  72.   delay(delaytime);
  73.   for(int i=2; i<20; i++) {
  74.     digitalWrite(i, LOW);  // LED OFF
  75.   }
  76.   digitalWrite(4, HIGH);  // LED 2 ON
  77.   digitalWrite(5, LOW);
  78.   delay(delaytime);
  79.   for(int i=2; i<20; i++) {
  80.     digitalWrite(i, LOW);  // LED OFF
  81.   }
  82.   digitalWrite(6, HIGH);  // LED 3 ON
  83.   digitalWrite(7, LOW);
  84.   delay(delaytime);
  85.   for(int i=2; i<20; i++) {
  86.     digitalWrite(i, LOW);  // LED OFF
  87.   }
  88.   digitalWrite(8, HIGH);  // LED 4 ON
  89.   digitalWrite(9, LOW);
  90.   delay(delaytime);
  91.   for(int i=2; i<20; i++) {
  92.     digitalWrite(i, LOW);  // LED OFF
  93.   }
  94.   digitalWrite(11, HIGH);  // LED 5 ON
  95.   digitalWrite(12, LOW);
  96.   delay(delaytime);
  97.   for(int i=2; i<20; i++) {
  98.     digitalWrite(i, LOW);  // LED OFF
  99.   }
  100.   digitalWrite(13, HIGH);  // LED 6 ON
  101.   digitalWrite(14, LOW);
  102.   delay(delaytime);
  103.   for(int i=2; i<20; i++) {
  104.     digitalWrite(i, LOW);  // LED OFF
  105.   }
  106.   digitalWrite(15, HIGH);  // LED 7 ON
  107.   digitalWrite(18, LOW);
  108.   delay(delaytime);
  109.   for(int i=2; i<20; i++) {
  110.     digitalWrite(i, LOW);  // LED OFF
  111.   }
  112.   digitalWrite(19, HIGH);  // LED 8 ON
  113.   delay(delaytime);
  114.   for(int i=2; i<20; i++) {
  115.     digitalWrite(i, LOW);  // LED OFF
  116.   }
  117. }
复制代码


这个程序定义了全亮,全灭和逐个点亮的循环。
在setup里设置为输出,然后设置了这些命令。
这里并没有loop()程序,因为在loop中,你可以自由定制点灯开关的循环,只需要调用定义的这3个程序就够了。
可读性很强,直接就可以理解程序思路。
5.5 硬件设计
在通常是开发板设计中,开发板是一直需要的。但是这个项目中看不到开发板了。见上图。
这是因为,开发板只是在下载程序和调试的过程中用,完成了调试,就可以把G2553的芯片从基座取下来,直接插在面包板上,因为程序已经写入,所以把8个LED顺次插入,并接上3V电源就可以直接作为成品啦。
32.jpg


5.6 这个项目就是展示了使用Energia的一个重要的特点,就是芯片的开发是项目的核心。直接面向的是产品和应用,在兼顾开发方便的基础上,可以实现工业级的开发。


此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处




回复

使用道具 举报

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

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-27 04:05 , Processed in 0.090242 second(s), 22 queries , Gzip On, MemCache On.

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