計(jì)劃做個(gè)藍(lán)牙的接收機(jī)昧诱,用來控制四軸的飛控板晓淀。
使用的是ATMEAGE328P,不想再自己實(shí)現(xiàn)PWM了盏档,它自帶了6通道的PWM凶掰。為了能輕一點(diǎn),沒有設(shè)計(jì)外置晶振蜈亩,打算用內(nèi)部的锄俄。
板已經(jīng)打好了,回來一對(duì)藍(lán)牙控制板就吐血了勺拣,腳畫錯(cuò)了奶赠。
沒辦法,只能先試試程序了药有。為了能讓Ardunio開發(fā)環(huán)境支持毅戈,參照這個(gè)網(wǎng)頁,在Ardunio 1.0.4下測試成功
http://forum.arduino.cc/index.php?topic=124879.0
首先用文本編輯器打開arduino-1.0.4\hardware\arduino\bootloaders\optiboot下的Makefile文件愤惰,在標(biāo)準(zhǔn)的atmega328p這段后面苇经,加入下面這段配置:
# Standard atmega328, only at 38,400 baud for closer clock accuracy AND using 8Mhz internal RC oscillator
#
atmega328_384_8: TARGET = atmega328
atmega328_384_8: MCU_TARGET = atmega328p
atmega328_384_8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=38400'
atmega328_384_8: AVR_FREQ = 8000000L
atmega328_384_8: LDSECTIONS= -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe
atmega328_384_8: $(PROGRAM)_atmega328_384_8.hex
atmega328_384_8: $(PROGRAM)_atmega328_384_8.lst
atmega328_384_8_isp: atmega328
atmega328_384_8_isp: TARGET = atmega328
atmega328_384_8_isp: MCU_TARGET = atmega328p
# 512 byte boot, SPIEN
atmega328_384_8_isp: HFUSE = DE
# Int. RC Osc. 8MHz, slowly rising power-65ms
atmega328_384_8_isp: LFUSE = E2
# 2.7V brownout
atmega328_384_8_isp: EFUSE = 05
atmega328_384_8_isp: isp
然后打開windows的控制臺(tái)程序,進(jìn)入hardware\arduino\bootloaders\optiboot文件下
在控制臺(tái)中輸入并回車
omakeatmega328_384_8
這個(gè)atmega328_384_8參數(shù)指的就是上面定義的支持內(nèi)部8M RC的HEX文件宦言。
編譯完成后扇单,atmega328_384_8.hex就生成好了。
現(xiàn)在用文本編輯器打開arduino-1.0.4\hardware\arduino下的board.txt文件奠旺,并添加下面這段文字
##############################################################
atmega328_384_8.name=ATmega328 Optiboot @ 38,400baud w/ 8MHz Int. RC Osc.
atmega328_384_8.upload.protocol=arduino
atmega328_384_8.upload.maximum_size=30720
atmega328_384_8.upload.speed=38400
atmega328_384_8.bootloader.low_fuses=0xE2
atmega328_384_8.bootloader.high_fuses=0xDE
atmega328_384_8.bootloader.extended_fuses=0x05
atmega328_384_8.bootloader.path=optiboot
atmega328_384_8.bootloader.file=optiboot_atmega328_384_8.hex
atmega328_384_8.bootloader.unlock_bits=0x3F
atmega328_384_8.bootloader.lock_bits=0x0F
atmega328_384_8.build.mcu=atmega328p
atmega328_384_8.build.f_cpu=8000000L
atmega328_384_8.build.core=arduino
atmega328_384_8.build.variant=standard
這樣就定好了一個(gè)新的板子了蜘澜。關(guān)掉ardunio IDE,再打開响疚,板子列表里面就多了ATmega328 Optiboot @ 38,400baud w/ 8MHz Int. RC Osc.這一項(xiàng)鄙信。
選中后測試下燒入bootloader完全沒有問題。
至于自己設(shè)計(jì)的板子忿晕,又得重打樣了装诡。