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)
便利性上有得,资源利用上有失。我觉得Arduino有点中级语言的意思,就像C语言的效率拼不过汇编是必然地,看需求了呗。Arduino调试起来方便,大体框架上调好了,效率上跟不上再重写移植什么的工作量就小多了吧。
想起来那个64K大赛了,那代码写的……神迹啊,不过别说写了,能看懂的我觉得就是神人了{:soso__16737568882237233485_2:} 肯定的嘛~~~ 这样的方法,你得记清楚arduino 引脚号与mega芯片引脚号对应关系,在适当的地方用这个可以,如果每个地方都这么用就没必要了~~~ 双刃剑而已,凡是必是有利有弊,再说如果绕过arduino的库去直接编程,那还要arduino干嘛,直接用avr的环境算了 {:soso_e120:}汇编吧,最小了
页:
[1]