3 Energia详解3.1 Energia的概述
Energia基本是一道TI产品的懒人菜,可以用最简单的逻辑实现多数的功能。
从目前看,Energia的主要问题有3个,
第一个调试不容易。没有设置断点等功能,需要在程序中增加中间变量的语句才能实现部分调试功能。不过,本身就只适合流程清晰的程序。太复杂的逻辑,是不可以用的。
第二个就是没有实时时钟,在程序中的有thread功能的设置,但是,还是不能直接设置时钟和分频。也就意味着,对于扫描频率要求高的项目,基本上和arduino一样无能为力。在arduino有一个fastDigital库,就是直接调用了时钟,可以提高1K的精度。TI的系列lauchpad,主频最少16MHz,其实使用energia也是不能充分体现价值的,需要权衡后使用。
第三个就是编译后的效率还是不那么高。对于比较简单的应用,Energia编译后的容量都比较大,这个是因为Energia编译需要连接库的原因。原生的程序设计,应非常小。
但是,除了以上的问题,那么Energia的使用就是超乎想象的好用了。尤其对于外设的访问,基本和自然语言的顺序保持一致。这点也是Arduino的特点了。
3.2 从典型点灯程序看结构。
- /*
- Blink
- The basic Energia example.
- Turns on an LED on for one second, then off for one second, repeatedly.
- Change the LED define to blink other LEDs.
-
- Hardware Required:
- * LaunchPad with an LED
-
- This example code is in the public domain.
- */
- // most launchpads have a red LED
- #define LED RED_LED
- //see pins_energia.h for more LED definitions
- //#define LED GREEN_LED
-
- // the setup routine runs once when you press reset:
- void setup() {
- // initialize the digital pin as an output.
- pinMode(LED, OUTPUT);
- }
- // the loop routine runs over and over again forever:
- void loop() {
- digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(1000); // wait for a second
- digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
- delay(1000); // wait for a second
- }
void setup() { } 部分只执行一次,进行初始化设置。
然后void loop() {}无限制循环执行,知道掉电或者内置退出的机制。
如arduino一样,延时用delay(),输出用digitalWrite
3.3 加载硬件,这个和arduino一样,由硬件管理器直接从网站上下载。不过,多数只支持TI的原生板子,如果是自己定制的板子,那么应该不那么好用。
然后添加库,增加对于外设的访问,如wifi,servo等。
这样就准备好了项目的开发环境。
此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处