Stap 3: Exspearimintation
In dit experiment heb ik geprobeerd om erachter te komen hoe lang het duurde de digitalWrite()-opdracht uit te voeren van 1000 keer, en vervolgens hoe lang het duurde de stijl van "waar c" commando uit te voeren van 1000 keer. De code is vrij eenvoudig, en getoond hieronder: void setup {Serial.begin(9600)}; void loop {int eerste = 0; int definitieve = 0; eerste = micros(); for (int i = 0; ik < 500; i ++) {digitalWrite(13,HIGH); digitalWrite(13,LOW); } definitieve = micros(); Serial.Print ("tijd voor digitalWrite():"); Serial.Print(Final-Initial); Serial.println(""); eerste = micros(); for (int i = 0; ik < 500; i ++) {PORTB | = _BV(PB5); PORTB & = ~ _BV(PB5); } definitieve = micros(); Serial.Print ("tijd voor echte c opdracht:"); Serial.Print(Final-Initial); while(1); } Voel je vrij om dit zelf uitproberen. Hier zijn de resultaten die ik kreeg: (Seeeduino met ATMega168) Time for digitalWrite(): 3804 tijd voor echte c opdracht: 348
Dus elke stijl ingeschakeld de pin 500 keer en draaide het terug uit 500 keer. digitalWrite() nam 3804 microseconden, terwijl de echte c opdrachten nam slechts 348 microseconden. De ware c opdrachten zijn 10 keer sneller dan de digitalWrite()!
Proberen dit experiment voor jezelf, alles wat je nodig hebt is een arduino en een computer.