Arduino生成ATmega8的运行程序并下载
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino生成ATmega8的运行程序并下载相关的知识,希望对你有一定的参考价值。
简 介: 使用另外的ATmega8的Bootloader对ATmega8进行编程,仅仅利用Arduino IDE完成对于Scratch的编译,基于这个模式完成程序的开发。
关键词
: Arduino,IDE,ATmega8
§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的转换。它使用了单片机的 RXD
,TXD
,RST
三根线进行下载。在下面两个博文中,分别描述了用于下载的UART-TTL 基于MAX3232模块与单片机连接方法。
- 基于ATMEGA8的
Arduino
Nano(UNO)开发板 :给出了管脚顺序为VCC
,T1IN
,R1OUT
,T2IN
,GND
模块与单片机相连的方法是。 - ATMEGA8 DIP-28面包板实验 :给出了专门为ATmega8-DIP-28进行程序下载的UART-TTL的小型模块,它的输出管脚为:
VCC
,GND
,RST
,TXD
,RXD
,可以直接与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生成ATmega8的运行程序并下载的主要内容,如果未能解决你的问题,请参考以下文章