电子伙伴 https://bbs.21ic.com/?187830 [收藏] [复制] [RSS]

日志

学习AVR单片机(二)

已有 1445 次阅读2006-5-13 16:29 |个人分类:我的日志|系统分类:单片机


     今天开始写了一个IO口的读写程序,又看了一下编译结果发现没有按GCC的优化写法,你的代码编译后会差别很大




#include <avr/io.h>


#define RXD0 0
#define TXD1 1
#define TXD0 2
#define RXD1 3
void AvrInit(void)
{
 DDRB=(1<<TXD0)|(1<<TXD1);       //设定PB1和PB2为输出
 PORTB=0xf9;
}
int main(void)
{
 AvrInit();
 while(1)
 {
  if(!(PINB&(1<<RXD0)))
  {
   PINB&=~(1<<TXD1);
   while(!(PINB&(1<<RXD0)));
   PINB|=1<<TXD1;
  }
  if((PINB&(1<<RXD1))==0)
  {
   PINB&=~(1<<TXD0);
   while(!(PINB&(1<<RXD1)));
   PINB|=1<<TXD0;
  }
 }
}


  if((PINB&(1<<RXD1))==0)比if(!(PINB&(1<<RXD1)) 多10个字节的代码



 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)