Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1800811
  • 博文数量: 134
  • 博客积分: 2488
  • 博客等级: 大尉
  • 技术积分: 7554
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-26 21:19
个人简介

1.每日自省; 2.享受人生; 3.尽力而为; 4.坚持不懈; 5.切莫急躁; 6.慎言敏行; 7.动心忍性; 8.上善若水。

文章分类

全部博文(134)

文章存档

2014年(38)

2013年(42)

2012年(15)

2011年(39)

分类: 嵌入式

2011-08-02 17:27:25

ICC AVR 过渡到 AVR STUDIO时要注意的几个:

1.头文件更改

ICCAVR使用的“#include ”更改为“#include

在ICC中使用不同MCU类型的头文件是不同的,但是在AVR studio中avr/io.h都包含了不同MCU的头文件

2.AVR studio中延时函数可直接使用“#include ”头文件中的延时函数:

void _delay_us (double __us);

void _delay_ms(double __ms);

两个函数的参数均为double型的,通常使用整数延时即可。

(函数最大延时时间是有限制的,参考“util/delay.h”)

3.中断函数写法不同

ICC 中断使用:

ICC 断函数名可以自定义

#pragma interrupt_handler user_fuc:Interrupt vector number

如:

#pragma interrupt_handler Time2:iv_TIMER2_COMP

void Time2()

{

}

列出ATmega16的向量表:

/* Interrupt Vectors Numbers */
#define IT_RESET        1
#define IT_INT0         2
#define IT_INT1         3
#define IT_TIMER2_COMP 4
#define IT_TIMER2_OVF   5
#define IT_TIMER1_CAPT 6
#define IT_TIMER1_COMPA 7
#define IT_TIMER1_COMPB 8
#define IT_TIMER1_OVF   9
#define IT_TIMER0_OVF   10
#define IT_SPI_STC      11
#define IT_USART_RXC    12
#define IT_USART_UDRE   13
#define IT_USART_TXC    14
#define IT_ADC          15
#define IT_EE_RDY       16
#define IT_ANA_COMP     17
#define IT_TWI          18
#define IT_INT2         19
#define IT_TIMER0_COMP 20
#define IT_SPM_RDY      21

AVR studio中使用中断的话,需添加“#include ”头文件

如:

#include

ISR(SIG_OVERFLOW0)       //定时器/计数器0溢出中断(中断向量)

{

user_fuc();                           //用户自定义函数

}


4.一些库函数的不同

ICC                                        AVR studio

nop()                                    asm("nop")

WDR()                                 asm("wdr")

CLI()                                      cli()

SEI()                                      sei()

阅读(4576) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~