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的自动检查机制完成程序的自动下载过程。


■ 相关文献链接:

● 相关图表链接:

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
产品特性 • 高性能、低功耗的 8 位AVR® 微处理器 • 先进的RISC 结构 – 130 条指令 – 大多数指令执行时间为单个时钟周期 – 32个8 位通用工作寄存器 – 全静态工作 – 工作于16 MHz 时性能高达16 MIPS – 只需两个时钟周期的硬件乘法器 • 非易失性程序和数据存储器 – 8K 字节的系统内可编程Flash 擦写寿命: 10,000 次 – 具有独立锁定位的可选Boot 代码区 通过片上Boot 程序实现系统内编程 真正的同时读写操作 – 512 字节的EEPROM 擦写寿命: 100,000 次 – 1K字节的片内SRAM – 可以对锁定位进行编程以实现用户程序的加密 • 外设特点 – 两个具有独立预分频器8 位定时器/ 计数器, 其中之一有比较功能 – 一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器 – 具有独立振荡器的实时计数器RTC – 三通道PWM – TQFP与MLF 封装的8 路ADC 8 路10 位ADC – PDIP封装的6 路ADC 8 路10 位ADC – 面向字节的两线接口 – 两个可编程的串行USART – 可工作于主机/ 从机模式的SPI 串行接口 – 具有独立片内振荡器的可编程看门狗定时器 – 片内模拟比较器 • 特殊的处理器特点 – 上电复位以及可编程的掉电检测 – 片内经过标定的RC 振荡器 – 片内/ 片外中断源 – 5种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式及Standby 模式 • I/O 和封装 – 23个可编程的I/O 口 – 28引脚PDIP 封装,32 引脚TQFP 封装,32 引脚MLF 封装 • 工作电压 – 2.7 - 5.5V (ATmega8L) – 4.5 - 5.5V (ATmega8) • 速度等级 – 0 - 8 MHz (ATmega8L) – 0 - 16 MHz (ATmega8) • 4 Mhz 时功耗, 3V, 25°C – 工作模式: 3.6 mA – 空闲模式: 1.0 mA – 掉电模式: 0.5 μA

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值