完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
MSP432在Energia上的使用(下)
其实我自己都没想到我居然会来填坑,不过说实话这好像也算不上填坑,毕竟之前在MSP430在Energia上的使用(上)这个帖子里讲的是MSP430,而且说的准备在VSCode里装Energia其实到现在还没弄,不过这里还是想介绍一下Energia的另一项功能,一个专属于MSP432的功能。 发现 事实证明多看官网还是有好处的,之前我在使用Energia对MSP430进行编程时一直非常疑惑,为什么TI公司不直接使用Arduino已有的IDE而非要做个自己的Energia导致不为人知非常冷门,但是官网上的介绍回答了我这一点。打开Energia官网,进入Guide界面,翻阅一下可以看见一个名词——MultiTasking,即多任务。众所周知如果单片机想要实现多任务并行,一般需要自己搭建RTOS或者更复杂一点进行专门的时分复用设计,这些方法往往需要较丰富的知识才能实现。而Energia就可以非常简单地(其实如果进行一些复杂操作也是挺复杂的)实现多任务操作。而官网在这里其实也给出了关于Multitasking的介绍,值得注意的是目前该功能只能作用与MSP432,MSP432E,CC3320和CC1310几种芯片,这也是为什么我把这一章名字改成了MSP432而不是MSP430。(说起来每次打开Energia它的启动显示里面也写到了Energia MT,实际上就是说的这个功能,不过我一直没咋注意) 使用方法 其实官网原文就有一个大概介绍了,我这里就重复一下。关于MultiTasking(以下简称MT)的使用其实非常简单(如果不想做太复杂的话)。 每次新建工程后,我们会有一个初始界面,上面写的void setup()和void loop()(其实就是正常Energia或Arduino IDE在新建后的工程界面),我们可以把这个界面称之为工程主界面。如果只使用工程主界面写一个程序,那么它只是普通的单线程程序,但是如果你使用的是MSP432这类单片机,你可以点击IDE右上角的倒三角符号,新建一个task,随便输入一个名字作为新任务(Task)的名字(注意不要输入后缀,IDE会自动将其生成为ino)然后你可以在里面写两个函数,他们便可以当成一个新的setup和loop函数了,此时如果烧录进芯片后,芯片便会同时运行两个任务(实际上并不是同时运行,只是通过快速转换两个任务的运行最后看上去是同时运行)。 示例程序有很多,这里介绍其中最简单的MultiBlink的程序。 TASK1 #define LED BLUE_LED void setup() { // initialize the digital pin as an output. pinMode(LED, OUTPUT); } void loop() { digitalWrite(LED, HIGH); //turn the LED on by making the voltage HIGH delay(100); // wait for a second digitalWrite(LED, LOW); //turn the LED off by making the voltage LOW delay(100); // wait for a second } TASK2 #define LED GREEN_LED void setupGreenLed() { // initialize the digital pin as an output. pinMode(LED, OUTPUT); } void loopGreenLed() { digitalWrite(LED, HIGH); // turn the LED on delay(500); // wait for half a second digitalWrite(LED, LOW); // turn the LED off delay(500); // wait for half a second } Task3 #define LED RED_LED void setupRedLed() { // initialize the digital pin as an output. pinMode(LED, OUTPUT); } void loopRedLed() { digitalWrite(LED, HIGH); // turn the LED on delay(1000); // wait for 1/10 second digitalWrite(LED, LOW); // turn the LED off delay(1000); // wait for 1/10 second } 该程序可以让LaunchPad上的三色LED以多种不同颜色的组合进行闪烁,有一说一还挺炫酷。 |
|
|
|
只有小组成员才能发言,加入小组>>
3208 浏览 9 评论
2895 浏览 16 评论
3401 浏览 1 评论
8840 浏览 16 评论
3994 浏览 18 评论
9625浏览 3评论
998浏览 3评论
518浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
521浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2244浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 06:01 , Processed in 0.931904 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号