ho trovato molti esempi di codici molto semplici che fanno la stessa cosa scritti con ide-arduino e con bascom-avr.
non è per fare cattiva pubblicità all'ide di ardu, ma confrontando di persona e compilando i codici mi sono accorto che quelli scritti con ide-ardu occupano almeno 3 volte lo spazio che occupano quelli in bascom, quindi secondo meno performanti e più lenti.
ho provato molti codici.... questa cosa risulta anche a voi?
da cosa dipende? è vero che bascom è molto potente allora?
I due sorgenti sotto riportati eseguono 10 letture con l'adc e poi eseguono la media e la spediscono sulla seriale.
Versione arduino (2590 byte)
- Code: Select all
#define NUMREADINGS 10
int readings[NUMREADINGS];
int index = 0;
int total = 0;
int average = 0;
int inputPin = 0;
void setup()
{
Serial.begin(9600);
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0;
}
void loop()
{
total-=readings[index];
readings[index] = analogRead(inputPin);
total+= readings[index];
index =(index + 1);
if(index >= NUMREADINGS)
index = 0;
average = total / NUMREADINGS;
Serial.println(average);
}
versione bascom (890 byte)
- Code: Select all
$regfile "m328pdef.dat"
$include "DuinoLib.inc"
$crystal = 16000000
$external Anaread
$baud = 9600
$noramclear
Dim Index As Byte , Value As Word , Total As Word , Average As Word
Dim Readings(10) As Word
Const Numreadings = 10
Index = 1
'-------------------------------------------------------------------------------
Do
Total = Total - Readings(index)
Anaread Adc5 , Value
Readings(index) = Value
Total = Total + Value
Incr Index
If Index > Numreadings Then Index = 1
Average = Total / Numreadings
Print Average
Loop
End
'890 byte di bascom contro i 2590 byte di IDE-arduino (ma sto sognando?)