WINAVR简易教程


建立项目,如下图:

输入工程名: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

展开阅读全文

没有更多推荐了,返回首页