Arduino生成ATmega8的运行程序并下载

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino生成ATmega8的运行程序并下载相关的知识,希望对你有一定的参考价值。

简 介: 使用另外的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 程序界面

▲ 图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 下载界面

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

2、Arduino IDE生成下载程序

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

▲ 图1-3 ATmega8 管脚定义

▲ 图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 选择开发板也处理器,完成编译过程

▲ 图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-5 正常下载HEX过程

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

▲ 图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的运行程序并下载的主要内容,如果未能解决你的问题,请参考以下文章

利用Arduino IDE对ATMEGA8等单片机编程

arduinonanol灯频闪,程序没运行

Atmega8独立工作必备电路

arduino程序代写

为啥arduino程序写好之后另存为到其他文件夹就会导致软件运行崩溃呢?

bin固件转成arduino的程序