möchte gern mehrere Ausgänge gleichzeitig schalten.
Ich schreibe das momentan so:
digitalWrite(R1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
Meine Frage ist es kann ich diese Zeilen zur einer Zusammenfassen?
Bzw kann ich dafür eine Variable setzen die diese Ausgänge zusammenfasst?
Wenn ja wie mache ich sowas habe im Netz nichts dazu gefunden.
uint8_t pins[4] = { 3,4,5,8};
void setup()
{
for(uint8_t i = 0; i < 4; i++) pinMode(pins[i], OUTPUT);
}
void loop()
{
for(uint8_t i = 0; i < 4; i++) digitalWrite(pins[i], HIGH);
}
Ansonsten schau dir Bitmanipulation an. Da sollte man aber dann auch in der Lage sein, Datenblätter der Controller zu lesen, um die genauen Ports/Bits ausfindig zu machen.
Bit-Manipulation verwendet man vor allem in folgenden Fällen:
1.) Wenn das Setzen oder Einlesen eines Pins schneller als ca. 4µs gehen muss
2.) Wenn man mehrere Pins wirklich gleichzeitig Setzten oder Einlesen muss
Es gibt aber auch ein paar Anwendungen wo es nur den Code schöner macht. z.B. DIP-Schalter oder BCD-Schalter einlesen und daraus eine Variable machen. Das muss nicht unbedingt gleichzeitig eingelesen werden und das kann man auch mit der Arduino Syntax machen, aber es ist aufwendiger als einfach bis zu 8 Pins auf einmal einzulesen.