Arduino 的方法是使用新的 F_CPU 速度为您的主板制作一个自定义平台。核心库应该携带此 F_CPU。
这很简单,只需制作一个包含差异的boards.txt 文件即可。当前两个 IDE 之间的文件位置(两者相同)不同。对于 Arduino IDE 1.0.5:
C:\Users\mflaga\Documents\Arduino\hardware\myArduino11MgHz\boards.txt
对于 1.5.5 的情况:
C:\Users\mflaga\Documents\Arduino\hardware\myArduino11MgHz\avr\boards.txt
在您的情况下,草图目录会有所不同。
# See: http://code.google.com/p/arduino/wiki/Platforms
##############################################################
myArduino11MgHz.name=Arduino 11MgHz
myArduino11MgHz.vid.0=0x2341
myArduino11MgHz.pid.0=0x0043
myArduino11MgHz.vid.1=0x2341
myArduino11MgHz.pid.1=0x0001
myArduino11MgHz.upload.tool=avrdude
myArduino11MgHz.upload.protocol=arduino
myArduino11MgHz.upload.maximum_size=32256
myArduino11MgHz.upload.maximum_data_size=2048
myArduino11MgHz.upload.speed=115200
myArduino11MgHz.bootloader.tool=avrdude
myArduino11MgHz.bootloader.low_fuses=0xFF
myArduino11MgHz.bootloader.high_fuses=0xDE
myArduino11MgHz.bootloader.extended_fuses=0x05
myArduino11MgHz.bootloader.unlock_bits=0x3F
myArduino11MgHz.bootloader.lock_bits=0x0F
myArduino11MgHz.bootloader.file=optiboot/optiboot_atmega328.hex
myArduino11MgHz.build.mcu=atmega328p
myArduino11MgHz.build.f_cpu=11059200L
myArduino11MgHz.build.board=AVR_myArduino11MgHz
myArduino11MgHz.build.core=arduino:arduino
myArduino11MgHz.build.variant=arduino:standard
##############################################################
这里有一个第 3 方 GUI 编辑器董事会.txt。
免责声明。上面的代码确实可以编译并且应该可以正常工作。我还没有实际测试并加载到单元中。
也就是说,我希望引导加载程序的 F_CPU 不匹配。对此有三种可能的解决方案。
First; optiboot 加载程序应该有一个具有以下偏差的相应目标:
\arduino-1.5.5\hardware\arduino\avr\bootloaders\optiboot\Makefile
myArduino11MgHz: AVR_FREQ = 11059200L
Second;更改boards.txt上传速度以匹配=115200*(11059200/16000000)的更改。
myArduino11MgHz.upload.speed=79626
这是一个非典型的波特率,avrdude 或串行端口都可以支持它。
Third;不要使用引导加载,通过 ISP 编程器上传。
我同样计划制作一块具有不同 F_CPU 的板,但实际上只制作了具有相同速度的定制板。我很想知道上述方法在您的情况下是否真的有效。