[原创] 【挑战Energia-ID0301A】 Energia详解

北方   2018-3-28 14:27 楼主
3 Energia详解3.1 Energia的概述
Energia基本是一道TI产品的懒人菜,可以用最简单的逻辑实现多数的功能。
从目前看,Energia的主要问题有3个,
第一个调试不容易。没有设置断点等功能,需要在程序中增加中间变量的语句才能实现部分调试功能。不过,本身就只适合流程清晰的程序。太复杂的逻辑,是不可以用的。
第二个就是没有实时时钟,在程序中的有thread功能的设置,但是,还是不能直接设置时钟和分频。也就意味着,对于扫描频率要求高的项目,基本上和arduino一样无能为力。在arduino有一个fastDigital库,就是直接调用了时钟,可以提高1K的精度。TI的系列lauchpad,主频最少16MHz,其实使用energia也是不能充分体现价值的,需要权衡后使用。
第三个就是编译后的效率还是不那么高。对于比较简单的应用,Energia编译后的容量都比较大,这个是因为Energia编译需要连接库的原因。原生的程序设计,应非常小。
但是,除了以上的问题,那么Energia的使用就是超乎想象的好用了。尤其对于外设的访问,基本和自然语言的顺序保持一致。这点也是Arduino的特点了。
3.2 从典型点灯程序看结构。

  1. /*
  2.   Blink
  3.   The basic Energia example.
  4.   Turns on an LED on for one second, then off for one second, repeatedly.
  5.   Change the LED define to blink other LEDs.
  6.   
  7.   Hardware Required:
  8.   * LaunchPad with an LED
  9.   
  10.   This example code is in the public domain.
  11. */

  12. // most launchpads have a red LED
  13. #define LED RED_LED

  14. //see pins_energia.h for more LED definitions
  15. //#define LED GREEN_LED
  16.   
  17. // the setup routine runs once when you press reset:
  18. void setup() {               
  19.   // initialize the digital pin as an output.
  20.   pinMode(LED, OUTPUT);     
  21. }

  22. // the loop routine runs over and over again forever:
  23. void loop() {
  24.   digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  25.   delay(1000);               // wait for a second
  26.   digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  27.   delay(1000);               // wait for a second
  28. }



void setup() { } 部分只执行一次,进行初始化设置。
然后void loop() {}无限制循环执行,知道掉电或者内置退出的机制。
如arduino一样,延时用delay(),输出用digitalWrite


3.3 加载硬件,这个和arduino一样,由硬件管理器直接从网站上下载。不过,多数只支持TI的原生板子,如果是自己定制的板子,那么应该不那么好用。
然后添加库,增加对于外设的访问,如wifi,servo等。
这样就准备好了项目的开发环境。



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




回复评论 (1)

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

点赞  2021-12-21 17:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复