Avatar von Prokrastes
  • Prokrastes

mehr als 1000 Beiträge seit 06.07.2005

Re: Flipdot-Display mit Arduino steuern

-1 für digitalWrite ist ... humbug. Die Funktion prüft den übergebenen Wert auf 'LOW', was in arduino.h als 0 definiert ist. Alle anderen Werte werden wie 'HIGH' interpretiert, auch -1.

#define HIGH 0x1 #define LOW 0x0

(Arduino.h)

void digitalWrite(uint8_t pin, uint8_t val) { uint8_t timer = digitalPinToTimer(pin); uint8_t bit = digitalPinToBitMask(pin); uint8_t port = digitalPinToPort(pin); volatile uint8_t *out; if (port == NOT_A_PIN) return; // If the pin that support PWM output, we need to turn it off // before doing a digital write. if (timer != NOT_ON_TIMER) turnOffPWM(timer); out = portOutputRegister(port); uint8_t oldSREG = SREG; cli(); if (val == LOW) { *out &= ~bit; } else { *out |= bit; } SREG = oldSREG; }

(Wiring_digital.c, für Dich interessant ist der Abschnitt nach der Zeile 'cli();')

Wer auch immer das geschrieben hat, hat entweder nicht mit arduino/digitalWrite gearbeitet, oder entschieden nicht verstanden, was er da macht.

Bewerten
- +
Anzeige