xzkjsclxy 发表于 2012-3-27 20:18:29

ARDUINO实现同样的功能,用自带函数很占资源啊

今天小试了一把0-7口的流水灯,一个用digitalWrite,一个用PORTD,两个资源占用率差三分之一啊!

void setup()
{
char i;
for(i=0;i<8;i++)
{
   pinMode(i,OUTPUT);
}
}

void loop()
{
char i;
while(1)
{
   for(i=0;i<7;i++)
   {
   digitalWrite(i,HIGH);
   delay(100);
   digitalWrite(i,LOW);
   }
   
   for(i=7;i>0;i--)
   {
   digitalWrite(i,HIGH);
   delay(100);
   digitalWrite(i,LOW);
   }
}
}
占用资源:Binary sketch size: 1072 bytes (of a 30720 byte maximum)


void setup()
{
DDRD=0xff;
}

void loop()
{
unsigned char i;
PORTD=B00000001;
while(1)
{
    for(i=0;i<7;i++)
    {
      delay(100);
      PORTD=PORTD<<1;
    }
   
    for(i=7;i>0;i--)
    {
      delay(100);
      PORTD=PORTD>>1;
    }

}
}

占用资源:Binary sketch size: 710 bytes (of a 30720 byte maximum)

黑马 发表于 2012-3-28 11:22:40

便利性上有得,资源利用上有失。我觉得Arduino有点中级语言的意思,就像C语言的效率拼不过汇编是必然地,看需求了呗。Arduino调试起来方便,大体框架上调好了,效率上跟不上再重写移植什么的工作量就小多了吧。

想起来那个64K大赛了,那代码写的……神迹啊,不过别说写了,能看懂的我觉得就是神人了{:soso__16737568882237233485_2:}

奈何col 发表于 2012-3-28 11:45:52

肯定的嘛~~~

海神 发表于 2012-3-28 16:27:57

这样的方法,你得记清楚arduino 引脚号与mega芯片引脚号对应关系,在适当的地方用这个可以,如果每个地方都这么用就没必要了~~~

wubo19842008 发表于 2012-3-29 09:17:10

双刃剑而已,凡是必是有利有弊,再说如果绕过arduino的库去直接编程,那还要arduino干嘛,直接用avr的环境算了

Ansifa 发表于 2012-3-30 12:26:41

{:soso_e120:}汇编吧,最小了
页: [1]
查看完整版本: ARDUINO实现同样的功能,用自带函数很占资源啊