Hallo,
ich hab 2 Probleme.
- Wie kann ich einen Integerwert von 0-255 in Binär umwandeln? (50=110010)
- Wie kann ich den erhaltenen Wert dann auf die Pins von 2 - 9 packen?
- Wie kann ich einen binären Wert von den Pins 2-9 lesen?
- Wie wandele ich ihn in einen integer um?
Hoffe jemand kann da helfen.
-
Was willst du tun - sofern es nicht für eine Ausgabe ist, ist eine Umwandlung von decimal zu binär selten vonnöten
-
entweder liest du die einzelnen Bits des Integers mit bitRead und schreibst sie auf den entsprechenden Pin mit digitalWrite
byte data = B00110010; // Dein 8Bit Wert
int cnt;
// Pin 2-9 als Ausgang definieren
for(cnt = 2; cnt < 10; cnt++) {
pinMode(cnt,OUTPUT);
}
for(cnt = 0; cnt < 8; cnt++) {
digitalWrite(cnt+2,bitRead(data,cnt));
}
oder du versuchst dich in der Portmanipulation: etwa so:
byte data = B00110010; // Dein 8Bit Wert
DDRD = DDRD | B11111100; // Pin 2-7 als Ausgang definieren
DDRB = DDRB | B00000011; // Pin 8-9 als Ausgang definieren
PORTD = (PORTD & B00000011) | (data << 2); // Pin 2-7 löschen und mit Bit 1-6 beschreiben
PORTB = (PORTB & B11111100) | (data >> 6); // Pin 8&9 löschen und mit Bit 7 & 8 beschreiben
beide Versionen sind nicht getestet