|
【挑战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 - void setup() {
- // initialize the digital pin as an output.
- pinMode(2, OUTPUT); // + LED 1
- pinMode(3, OUTPUT); // - LED 1
- pinMode(4, OUTPUT); // + LED 2
- pinMode(5, OUTPUT); // - LED 2
- pinMode(6, OUTPUT); // + LED 3
- pinMode(7, OUTPUT); // - LED 3
- pinMode(8, OUTPUT); // + LED 4
- pinMode(9, OUTPUT); // - LED 4
- pinMode(10, OUTPUT); // -
-
- pinMode(11, OUTPUT); // + LED 5
- pinMode(12, OUTPUT); // - LED 5
- pinMode(13, OUTPUT); // + LED 6
- pinMode(14, OUTPUT); // - LED 6
- pinMode(15, OUTPUT); // + LED 7
- // 16 is RESET
- // 17 is TEST
- pinMode(18, OUTPUT); // - LED 7
- pinMode(19, OUTPUT); // + LED 8
-
- // set the simulated GND pins low
- digitalWrite(3, LOW);
- digitalWrite(5, LOW);
- digitalWrite(7, LOW);
- digitalWrite(9, LOW);
- digitalWrite(10, LOW);
- digitalWrite(12, LOW);
- digitalWrite(14, LOW);
- digitalWrite(18, LOW);
- }
- // the loop routine runs over and over again forever:
- void loop() {
- allOn(1000);
- allOff(1000);
- allOn(1000);
- allOff(500);
- oneByOne(500);
-
- }
- void allOn(int delaytime) {
- digitalWrite(2, HIGH); // LED 1 ON
- digitalWrite(3, LOW);
- digitalWrite(4, HIGH); // LED 2 ON
- digitalWrite(5, LOW);
- digitalWrite(6, HIGH); // LED 3 ON
- digitalWrite(7, LOW);
- digitalWrite(8, HIGH); // LED 4 ON
- digitalWrite(9, LOW);
- digitalWrite(11, HIGH); // LED5 ON
- digitalWrite(12, LOW);
- digitalWrite(13, HIGH); // LED 6 ON
- digitalWrite(14, LOW);
- digitalWrite(15, HIGH); // LED 7 ON
- digitalWrite(18, LOW);
- digitalWrite(19, HIGH); // LED 8 ON
- delay(delaytime); // delay 1 second
- }
- void allOff(int delaytime) {
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED 1 ON
- }
- delay(delaytime); // delay 1 second
- }
- void oneByOne(int delaytime) {
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(2, HIGH); // LED 1 ON
- digitalWrite(3, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(4, HIGH); // LED 2 ON
- digitalWrite(5, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(6, HIGH); // LED 3 ON
- digitalWrite(7, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(8, HIGH); // LED 4 ON
- digitalWrite(9, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(11, HIGH); // LED 5 ON
- digitalWrite(12, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(13, HIGH); // LED 6 ON
- digitalWrite(14, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(15, HIGH); // LED 7 ON
- digitalWrite(18, LOW);
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- digitalWrite(19, HIGH); // LED 8 ON
- delay(delaytime);
- for(int i=2; i<20; i++) {
- digitalWrite(i, LOW); // LED OFF
- }
- }
复制代码
这个程序定义了全亮,全灭和逐个点亮的循环。 在setup里设置为输出,然后设置了这些命令。 这里并没有loop()程序,因为在loop中,你可以自由定制点灯开关的循环,只需要调用定义的这3个程序就够了。 可读性很强,直接就可以理解程序思路。 5.5 硬件设计 在通常是开发板设计中,开发板是一直需要的。但是这个项目中看不到开发板了。见上图。 这是因为,开发板只是在下载程序和调试的过程中用,完成了调试,就可以把G2553的芯片从基座取下来,直接插在面包板上,因为程序已经写入,所以把8个LED顺次插入,并接上3V电源就可以直接作为成品啦。
5.6 这个项目就是展示了使用Energia的一个重要的特点,就是芯片的开发是项目的核心。直接面向的是产品和应用,在兼顾开发方便的基础上,可以实现工业级的开发。
此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处
|
|