]> kolegite.com Git - vmks.git/commitdiff
Improved Reister_multiple example
authorVladimir Garistov <vl.garistov@gmail.com>
Thu, 19 Oct 2023 13:13:10 +0000 (16:13 +0300)
committerVladimir Garistov <vl.garistov@gmail.com>
Thu, 19 Oct 2023 13:13:10 +0000 (16:13 +0300)
Examples/GPIO/Register_multiple/Register_multiple.ino

index 68153ea0615c81631c5e25546b1740b8b90c7046..ce25aaf21b82b2d6a43a447b9200a25210f527cc 100644 (file)
@@ -1,25 +1,39 @@
+#define Y_U_SO_SLOW
+
 void setup()
 {
-  pinMode(8, OUTPUT);
-  pinMode(9, OUTPUT);
-  pinMode(10, OUTPUT);
-  pinMode(11, OUTPUT);
-  digitalWrite(8, LOW);
-  digitalWrite(9, LOW);
-  digitalWrite(10, HIGH);
-  digitalWrite(11, HIGH);
+       #ifdef Y_U_SO_SLOW
+       pinMode(8, OUTPUT);
+       pinMode(9, OUTPUT);
+       pinMode(10, OUTPUT);
+       pinMode(11, OUTPUT);
+       digitalWrite(8, LOW);
+       digitalWrite(9, LOW);
+       digitalWrite(10, HIGH);
+       digitalWrite(11, HIGH);
+       #else
+       DDRB |= (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3);
+       PORTB = (PORTB | (1 << DDB2) | (1 << DDB3)) & ~((1 << DDB0) | (1 << DDB1));
+       #endif
 }
 
 void loop()
 {
-  delay(100);
-  digitalWrite(8, HIGH);
-  digitalWrite(9, HIGH);
-  digitalWrite(10, LOW);
-  digitalWrite(11, LOW);
-  delayMicroseconds(50);
-  digitalWrite(8, LOW);
-  digitalWrite(9, LOW);
-  digitalWrite(10, HIGH);
-  digitalWrite(11, HIGH);  
+       #ifdef Y_U_SO_SLOW
+       delay(100);
+       digitalWrite(8, HIGH);
+       digitalWrite(9, HIGH);
+       digitalWrite(10, LOW);
+       digitalWrite(11, LOW);
+       delayMicroseconds(50);
+       digitalWrite(8, LOW);
+       digitalWrite(9, LOW);
+       digitalWrite(10, HIGH);
+       digitalWrite(11, HIGH);
+       #else
+       PORTB ^= (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3);
+       delayMicroseconds(50);
+       PORTB ^= (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3);
+       delay(100);
+       #endif
 }