建立项目,如下图:
输入工程名:led_1,放在目录D:\exp下
在右边出现的<new>界面中输入以下程序,
保存到项目目录D:\exp中,文件名定位led_1.c
在led_1项目上点右键,
选择存盘后,项目已经建成。但是编译还要配置Makefile文件。请继续看下面的编译调试步骤。
二、 编译调试
点击运行菜单中的Mfile项
在打开的窗口中,点击Makefile,选择Main file name…这一项
我们在上面保存的文件名是led_1.c,这里填入led_1
设定MCU型号。这里我们用的是MEGA168
其它各项,我们都使用默认设置。选择另存为把这个配置文件保存到刚才的项目目录中。
还有一个问题。就是默认的配置是8M晶振,我使用的是7.3728M。这样在使用延时函数的时候就不准确了。
在PN(Programmers Notepad)中打开D:\exp\Makefile文件
把F_CPU=8000000改为F_CPU=7372800就是7.3728M
选择保存,就完成了Makefile文件的配置。
配置或者改动Makefile文件后,要执行一次Make Clean选项
再选择Make All选项,编译
如果编译正确,Output窗口会输出以下内容:
> "make.exe" all
-------- begin --------
avr-gcc (WinAVR 20090313) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: led_1.c
avr-gcc -c -mmcu=atmega168 -I. -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./led_1.lst -std=gnu99 -MMD -MP -MF .dep/led_1.o.d led_1.c -o led_1.o
Linking: led_1.elf
avr-gcc -mmcu=atmega168 -I. -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=led_1.o -std=gnu99 -MMD -MP -MF .dep/led_1.elf.d led_1.o --output led_1.elf -Wl,-Map=led_1.map,--cref -lm
Creating load file for Flash: led_1.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock led_1.elf led_1.hex
Creating load file for EEPROM: led_1.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex led_1.elf led_1.eep || exit 0
Creating Extended Listing: led_1.lss
avr-objdump -h -S -z led_1.elf > led_1.lss
Creating Symbol Table: led_1.sym
avr-nm -n led_1.elf > led_1.sym
Size after:
AVR Memory Usage
----------------
Device: atmega168
Program: 178 bytes (1.1% Full)
(.text + .data + .bootloader)
Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
-------- end --------
> Process Exit Code: 0
在工作目录D:\exp中生成了.hex文件led_1.hex