简 介: 使用另外的ATmega8的Bootloader对ATmega8进行编程,仅仅利用Arduino IDE完成对于Scratch的编译,基于这个模式完成程序的开发。

关键词ArduinoIDEATmega8

§01 利用Arduino生成ATmega8执行程序


  基于Arduino IDE的 Scratch完成程序的开发,借助于现在这个生态环境中越来越多积累下的软件包,的确可以加速软件的开发。满足更新的需要。

  在 利用Arduino IDE对ATMEGA8等单片机编程 测试了对于Arduino IDE增加 MinCore的软件包,使其能够对于 ATmega48~ATmega328 进行开发支持。下面通过实验测试:

  • 通过Arduino IDE生成ATmega8的执行程序,使用自行制作的Bootloader完成ATmega8程序上传,看是否可以进行正常执行。
  • Arduino IDE生成的程序自行上传之后,测试是否它也就同时具备了Arduino IDE的Bootloader的功能。这是因为在它生成的程序中,自动包含了Bootloader的功能。

1、MEGA328 Download

  MEGA328 Download是自行编写的基于串口的ISP Bootloader下载软件,可以兼容一些常见的ATmega系列的单片机。

MEGA328 Download 所在目录: D:\zhuoqing\window\cb\MegaBL\M328_BL

▲ 图1-1 MEGA328 Download 程序界面

  这个软件利用MAX3232完成从微机UART到TTL-UART的转换。它使用了单片机的 RXDTXDRST三根线进行下载。在下面两个博文中,分别描述了用于下载的UART-TTL 基于MAX3232模块与单片机连接方法。

  • 基于ATMEGA8的Arduino Nano(UNO)开发板 :给出了管脚顺序为VCCT1INR1OUTT2INGND模块与单片机相连的方法是。
  • ATMEGA8 DIP-28面包板实验 :给出了专门为ATmega8-DIP-28进行程序下载的UART-TTL的小型模块,它的输出管脚为:VCCGNDRSTTXDRXD,可以直接与DIP-28封装的ATmega8在面包板上搭建下载界面。

▲ 图1-2 在面包板上搭建的ATmega8 下载界面

2、Arduino IDE生成下载程序

  根据下图可以看到对于ATmega8 的PB0对应Arduino中的D8,由此编写对应的测试小程序。

▲ 图1-3 ATmega8 管脚定义

(1)测试程序

/*
**==============================================================================
** TEST1.C:             -- by Dr. ZhuoQing, 2021-05-31
**
**==============================================================================
*/
#define ON(pin)                 digitalWrite(pin, HIGH)
#define OFF(pin)                digitalWrite(pin, LOW)
#define VAL(pin)                digitalRead(pin)
#define IN(pin)                 pinMode(pin, INPUT)
#define OUT(pin)                pinMode(pin, OUTPUT)
const int LED_PIN = 8;
//------------------------------------------------------------------------------
void setup(void) {pinMode(LED_PIN, OUTPUT);
}
//------------------------------------------------------------------------------
void loop(void) {ON(LED_PIN);delay(100);OFF(LED_PIN);delay(100);
}
//==============================================================================
//                END OF FILE : TEST1.C
//------------------------------------------------------------------------------

(2)生成HEX文件

  首先 选择开发板也处理器,然后再完成编译过程。然后选择“项目”中的“导出已编译的的文件”。

▲ 图1-4 选择开发板也处理器,完成编译过程

  在程序所在的目录中,生成了以下两个文件:

  • sketch_may31a.ino.with_bootloader_atmega8_16000000L.hex
  • sketch_may31a.ino_atmega8_16000000L.hex

(3)利用MEGA328 Download下载HEX文件

  选择 sketch_may31a.ino.with_bootloader_atmega8_16000000L.hex下载,出现下载程序错误的情况; 选择 sketch_may31a.ino_atmega8_16000000L.hex 则可以完成正常下载,程序的功能正确。

▲ 图1-5 正常下载HEX过程

▲ 图1-6 下载程序之后运行的结果

§02 修改CRUNPYTHON_SHIFT程序


  将CRUNPYTHON_SHIFT程序修改如下,这样便可以在TEASOFT 软件编辑器中通过 ALT+SHIFT_R允许编辑的程序,它便可以将程序拷贝到Arduino IDE,并启动生成HEX文件的过程。这与普通的拷贝运行相比,它不再去询问下载程序了。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# CRUNTYPE.PY                  -- by Dr. ZhuoQing 2020-01-23
#
# Note:
#============================================================from head import *keyread = tspread()
if keyread[9] != 0: altflag = 1#------------------------------------------------------------
ret = tspsendwindowkey('Arduino 1.8.15', "a", control=1)
if ret == 0:filename = tspgeteditfile().split('.')[-1]if filename == 'c' or filename == 'C':tspcopyclipboard()tspsendwindowkey("Arduino 1.8.15", 'v', control=1)tspsendwindowkey("Arduino 1.8.15", "s", control=1,alt=1)else:tspsendwindowkey("Arduino 1.8.15", 'v', control=1)tspsendwindowkey("Arduino 1.8.15", "s", control=1, alt=1)printf("Arduino.")printf('\a')tspfocuswindow("TEASOFT:1")exit()tspbeep(1200, 50)
tspsendwindowkey('ImageCraft', 'pm', alt=1)#------------------------------------------------------------
#        END OF FILE : CRUNTYPE.PY
#============================================================

※ 总结讨论 ※


  利用了之前自行编辑的MEGA328下载程序软件,完成的对于普通的MEGA8的程序下载。此时,就可以不必利用Arduino IDE的下载界面完成程序的下载。而是可以通过Arduino生成HEX文件,然后在利用原来的下载调试界面完成程序的下载。

  通过修改TEASOFT配套的CRUNPYTHON_SHIFT.PY软件,可以使得在TEASOFT软件的文本编辑界面中,使用SHIFT+ALT+R命令,完成编程程序文本的拷贝,导出HEX文件的过程,再另一MEGA328的自动检查机制完成程序的自动下载过程。


■ 相关文献链接:

  • 利用Arduino IDE对ATMEGA8等单片机编程
  • 基于ATMEGA8的Arduino Nano(UNO)开发板
  • ATMEGA8 DIP-28面包板实验

● 相关图表链接:

  • 图1-1 MEGA328 Download 程序界面
  • 图1-2 在面包板上搭建的ATmega8 下载界面
  • 图1-3 ATmega8 管脚定义
  • 图1-4 选择开发板也处理器,完成编译过程
  • 图1-5 正常下载HEX过程
  • 图1-6 下载程序之后运行的结果

Arduino生成ATmega8的运行程序并下载相关推荐

  1. C#开发,.NET生成单文件运行程序

    长久以来的认知,对于托管代码 .NET / JAVA ,都是需要在服务器上安装 SDK 或者运行时的.比如 .NET Framework 4.XX ,JDK/JRE.XX 等.其实从 .NET Cor ...

  2. 利用PROGISP实现ARDUINO IDE编写的程序的下载以及如何把AVR单片机做成ARDUINO板

    首先讲讲题目的由来吧.我做的东西原本是利用ARDUINO MEGA2560及各种模块搭建起来的,程序自然也是用ARDUINO IDE写的.但这种东拼西凑的产品自然不够好,更主要的是,之前ARDUINO ...

  3. 二维码生成工具微信小程序源码下载

    二维码生成工具 支持上传二维码logo和调整尺寸背景颜色等等 无需域名与服务器 使用教程,用HBuilder X软件打卡项目然后运行到微信小程序即可 下方是演示图: 小程序源码下载地址: (已更新)二 ...

  4. Arduino可穿戴教程之第一个程序——上传运行程序(四)

    Arduino可穿戴教程之第一个程序--上传运行程序(四) 2.4.5  上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...

  5. 【arduino】arduino ISP下载程序方法,用arduino uno给M5 Module DC MOTOR下载程序

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天用arduino uno给M5的Module DC motor下载程序,别的就不多 ...

  6. 下载的c语言程序代码怎么运行,CFree怎么运行程序 编译运行C语言程序代码的方法...

    CFree是一款C语言编译软件,用户可以利用这款软件编译C/C++程序 ,如果你想要运行已经编写好的C语言代码,只需要几个简单的操作即可实现,如果你还不知道怎么运行,就赶快来看看下面的教程吧! 1.首 ...

  7. 微信小程序实现生成二维码功能并下载到本地

    微信小程序实现生成二维码功能并下载到本地 背景 实现 备注 背景 有这样一个需求,后台返回了url地址,微信小程序将url地址转成二维码图片,展示在页面上,并且该二维码图片可下载到用户手机相册中 实现 ...

  8. 万圣节头像框生成工具微信小程序源码下载支持流量主收益模式

    大家好万圣节马上就要来了 那么临近了万圣节那么也给大家带来了一款与万圣节相关的程序 那么这款程序呢就是可以制作生成与万圣节相关的头像框 内含多种模板风格可供选择 支持用户上传模式和自动获取微信头像模式 ...

  9. java项目下载后无法运行_eclipse不能在手机运行程序问题解决办法

    有时我们会遇到Eclipse不能在手机运行程序的问题,那么此时应该怎么办呢?本节内容中小编就为大家带来eclipse不能在手机运行程序问题的解决办法--Eclipse开发Android程序在手机上运行 ...

最新文章

  1. vue 分享微信传参_vue 中使用微信分享接口(简单实用)
  2. 输出商品列表 用户输入序号 显示用户选中的商品
  3. QT 通过QNetworkReply *获取对应请求的URL地址
  4. STM32开发 -- 复位类型判断
  5. 快手于冰:跟最优秀的人一起追求极致
  6. ondraw() 和dispatchdraw()的区别
  7. Jacoco字节码植入原理(源码分析)
  8. 手游开发者交流会议暨OGEngine新版发布
  9. 永恒python地速_立竿见影地把你的 Python 代码提速7倍
  10. MySQL中的information_schema
  11. Java-包、权限修饰符final、static
  12. 一文学会 SSH 服务!
  13. DbNetSpell
  14. AIS家电行业供应链管理系统综合分析-零部件订货对应分析需求
  15. 自动化机器人 rpa_机器人过程自动化和机器人的出现
  16. 低配置系统安装 linux,在低配置机中安装Linux系统
  17. PVE 天龙八部TLBB服务端搭建(一)--linux环境搭建
  18. Linux性能优化实战学习笔记:第四十六讲=====实战分析
  19. Nvme pcie有线千兆网卡
  20. Unity中通过按键更换材质球纹理图片

热门文章

  1. Asp.net MVC 示例项目Suteki.Shop分析之---结束篇
  2. js 关于运算顺序的问题
  3. 趣题:寻找出现了奇数次的数
  4. Another MySQL daemon already running with the same unix socket的解决
  5. linq查询语句转mongodb
  6. Centos7 安装 memcached 1.4.25
  7. 【unity】简要分析yield及协同程序的用法
  8. 火狐 IE 解析xmlDOM 的不同写法
  9. 在Android开发中怎样调用系统Email发送邮件
  10. 20155328 《信息安全系统设计基础》 课程总结