当前位置: 首页 > news >正文

瑶海区网站建设加强公司门户网站建设方案

瑶海区网站建设,加强公司门户网站建设方案,文学网站建设平台,服装网站建设如何解决文章目录 arduino - 用 arduino zero 开发板来学习理解arduino软件编程细节概述笔记实验环境不是所有的arduino工程都能在同一块开发板上编译过为啥arduino编程都是在setup()和loop()函数中实现代码?END arduino - 用 arduino zero 开发板来学习理解arduino软件编程细节 概述… 文章目录 arduino - 用 arduino zero 开发板来学习理解arduino软件编程细节概述笔记实验环境不是所有的arduino工程都能在同一块开发板上编译过为啥arduino编程都是在setup()和loop()函数中实现代码?END arduino - 用 arduino zero 开发板来学习理解arduino软件编程细节 概述 手头有个固件, 使用了arduino Mega2560 开发板来做控制. 但是我是arduino新手, Mega2560并不能做单步调试. 光看代码不管用啊, 要单步调试才能深入理解代码实现逻辑. 整了一块arduino zero开发板, 可以在 Arduino IDE 单步调试, 这就好多了. 单步调试后, 通过实验, 就可以理解很多arduino编程的细节问题了. 笔记 实验环境 Arduino IDE 2.0.3 arduino zero 不是所有的arduino工程都能在同一块开发板上编译过 每块开发板都包含了特定的库, 可能这个库由于MCU的原因(e.g. AVR MCU vs ARM M0 MCU), 并没有包含进开发板的库, 导致编译不过. e.g. _delay_loop_2 声明在 util/delay_basic.h 中, 头文件路径为 C:\Users\me\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\util 在mega2560开发板的工程上, 可以看到为了延时, 调用_delay_loop_2() 但是arduino zero是ARM M0的MCU, 所以就没有这个函数. 需要看官方例子, 找到延时函数, 进行替代. 打开官方例子工程, 将板子选为arduino zero, 打开有延时操作的例子, e.g. Blink工程, 单步delay()函数, 在实验里面, 可以看到微妙延时的函数. delayMicroseconds(), 替换掉就好. 还有些寄存器定义, 是和MCU相关的. e.g. SREG 这个在avr MCU中才有, 在ARM MCU中是没有的, 这就移植不了, 只能在mega2560或arduino nano every上运行. 因为这2款开发板不能单步, 只能用arduino zero模拟运行(将编译不过的实现注释掉), 将实现逻辑理清楚. 然后在avr mcu 的板子上实际测试. 为啥arduino编程都是在setup()和loop()函数中实现代码? 这个单步一下就知道, 先在setup()和loop()入口下断点, 跑起来, 单步出了这2个函数就看到了. /*Copyright (c) 2015 Arduino LLC. All right reserved.This library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */#define ARDUINO_MAIN #include Arduino.h// Weak empty variant initialization function. // May be redefined by variant files. void initVariant() __attribute__((weak)); void initVariant() { }extern USBDeviceClass USBDevice;// Initialize C library extern C void __libc_init_array(void);/** \brief Main entry point of Arduino application*/ int main( void ) {init();__libc_init_array();initVariant();delay(1); #if defined(USBCON)USBDevice.init();USBDevice.attach(); #endifsetup();for (;;){loop();if (arduino::serialEventRun) arduino::serialEventRun();}return 0; } 可以看到arduino IDE自己实现的main(), 系统初始化init()之后, 调用用户自己的初始化函数setup(), 然后在一个循环中调用用户自己的循环处理函数loop(). arduino这么搞, 对于用户来说, 方便倒是方便, 但是不灵活. 只能处理一些实时性不强, 没有并行处理, 只有顺序处理的任务. 对于产品来说, 还是不能用arduino IDE的这种编程方式, 还是要用没有封装的, 传统的MCU编程流程. END
http://www.pierceye.com/news/468609/

相关文章:

  • 网站建设运营思路网站已在别处备案怎么转入阿里云
  • 网站开发前端如何开发秦皇岛做网站
  • sns网站建设最好看免费观看高清大全宫崎骏
  • 手机网站开发下载app开发长沙
  • 重庆南川网站制作价格西宁网站建设优化
  • 电子商务网站建设与管理试卷6平面设计接单兼职
  • 建设手机网站大概要多少钱云南建投二公司官网
  • 公司如何建设网站首页网页设计与网站开发试题答案
  • 中企动力合作网站网站app下载平台怎么做
  • 网站开发专业成功人士重庆邮电大学官网网站
  • 官方网站后台图片下载怎么做网站开发与支付宝端口连接
  • 浏览器怎么打开网站服务器下载在线音乐网站开发摘要
  • 建网站拿到广告吉林整站优化
  • 怎么建站网站清远佛冈住房和城乡建设局网站
  • 领导高度重视门户网站建设广州引流推广公司
  • 公司网站建设吧个好wordpress增加搜索
  • 温州网站推广排名哪家购物网站建设好
  • 宿迁做网站公司哪家好中国建设监理协会化工监理协会网站
  • 网站建设广州天河常州企业自助建站系统
  • 厦门网站建设u贷款在线申请
  • 做肮脏交义的网站南宁住房和城乡建设局网站
  • 办网站需要什么my23777免费域名查询
  • 销售网站开发步骤网站域名到期了怎么办
  • 怎么做注册账号的网站网页打不开视频播放不了是什么问题
  • 江阴市住房和城乡建设局网站免费网页游戏poki
  • 个人网站设计网站建设的基本特点
  • 泉州专业做网站网站被k 原因
  • 18款禁用网站app直播建设部资质网站
  • 免费完整版的网站模板商丘行业网站建设开发公司
  • 网站与微网站区别推广通