Paso 3: Exspearimintation
En este experimento, intentado averiguar cuánto tiempo tardó el comando digitalWrite() ejecutar 1000 veces, y entonces cuánto tiempo tardó el estilo de "verdadero c" comando ejecutar 1000 veces. El código es bastante simple y se muestra a continuación: void setup() {Serial.begin(9600);} void loop() {int inicial = 0; int final = 0; inicial = micros(); para (int i = 0; i < 500; i ++) {digitalWrite(13,HIGH); digitalWrite(13,LOW); } final = micros(); Serial.Print ("tiempo de digitalWrite():"); Serial.Print(final-Initial); Serial.println(""); inicial = micros(); para (int i = 0; i < 500; i ++) {PORTB | = _BV(PB5); PORTB & = ~ _BV(PB5); } final = micros(); Serial.Print ("tiempo verdadero comando c:"); Serial.Print(final-Initial); while(1); } No dude en probar esto a ti mismo. Aquí están los resultados tengo: tiempo (Seeeduino con ATMega168) para digitalWrite(): 3804 tiempo verdadero comando c: 348
Así que cada estilo se convirtió en el pasador de 500 veces y apagué detrás 500 veces. digitalWrite() tomó 3804 microsegundos, mientras que los verdaderos comandos c sólo 348 microsegundos. Los verdaderos comandos c son 10 veces más rápido que el digitalWrite()!
Pruebe este experimento por sí mismo, todo lo que necesitas es un arduino y un ordenador.