2173|1

426

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

【挑战Energia-ID0501A】5 Energia开发项目 [复制链接]

 
5 Energia开发项目示例
5.1 项目说明采用MSP430launchpad进行一个LED轮流点亮的程序设计。

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电源就可以直接作为成品啦。


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


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


最新回复

很好的知识点,非常感谢分享,楼主辛苦了,顶起!   详情 回复 发表于 2021-12-21 17:51
点赞 关注
 

回复
举报

32

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

很好的知识点,非常感谢分享,楼主辛苦了,顶起!

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表