Hallo,
hab eine Schaltung mit DTMF-Erkennung MT8870 sowie einen Atmega
Prozessor dahinter gebaut, die 4 Bit-Datenleitungen (Q1-Q4) gehen zum
Prozessor auf Port B, 1-4. StD - Signalleitung auf IRQ0.
Hat alles beim Testen super funktioniert und ich hab alles auf einer
Platine sauber aufgebaut. Schöne Stecker angelötet usw. - nur leider bei
der Platine die Datenleitungen verkehrt herum angeschlossen (Q4 an Pin0,
Q3 an Pin1, Q2 an Pin2, Q1 an Pin3). Ein Umlöten ist mit vertretbarem
Aufwand kaum möglich. Wie kann ich die Bits trotzdem mit möglichst wenig
Aufwand wieder korrekt abfragen.
So sieht der Code derzeit aus (Bascom):
1 | Isr_0:
|
2 | Byttelefon = Pinb And 15
|
3 | Return
|
Nur sollte jetzt so konvertiert werden:
statt 1010 (0) lese ich jetzt 0101, also 5
statt 0001 (1) lese ich jetzt 1000, also 8
statt 0010 (2) lese ich jetzt 0100, also 4 usw.
Also Bit 3 sollte den Inhalt von Bit 0 erhalten
Bit 2 den Inhalt von Bit 1
Bit 1 den Inhalt von Bit 2
Bit 0 den Inhalt von Bit 3
Mit Shift-Operationen und Bitmaskierungen ist mir nichts geeignetes
eingefallen. Hat jemand eine Idee?