§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:zhuoqingwindowcbMegaBLM328_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 IDE对ATMEGA8等单片机编程
下一篇:基于ATMEGA8的Arduino Nano(UNO)开发板
推荐阅读最新更新时间:2024-11-06 12:24
设计资源 培训 开发板 精华推荐
- 使用基于 ZICM3588SP0-1-R Ember EM35x 收发器模块的 Mesh Connect EM35x 迷你模块的典型应用电路
- LTM4632EV 3.3V 输入、1.5V/3A VDDQ、0.75V/±3A VTT 和 10mA VTTR 设计的典型应用电路
- L7824C 固定输出稳压器的典型应用
- 基于 STM32 Nucleo 的 L62xx 系列双刷直流和步进电机驱动器的评估套件环境
- C8051F580DK,C8051F580 8051 MCU 工业应用开发系统
- 具有电源排序和 I2C 功能的 LTC3589HUJ-1 8 输出稳压器的典型应用电路
- ADP5020CP-EVALZ,评估板具有一个 3.3 V 稳压器 (VBOARD)、一个 3.7 V 稳压器 (VBATT) 和一个 2.0 V 稳压器 (VDDIO)
- LT3973IMS 5V、2MHz 降压转换器的典型应用
- 使用 NXP Semiconductors 的 MC9328MX21VK 的参考设计
- ST6 MCU 三相电机驱动应用电路