Hallo, ich möchte mit einem Arduino Uno DTMF-Töne dekodieren. Um den Kleinen nicht zu überlasten, werden die Töne mit einem MT8870 dekodiert. An den 4 Ausgängen des 8870 liegen je nach Ton ein high oder low an, ein fünfter Pin signalisiert mit high "Ton erkannt". Die hardware habe ich auf einem Steckbrett aufgebaut, geht. Mein Problem: wie kann man mit dem Arduino 4 pins auf einmal lesen? Ich habe vor hundert Jahren mal in 6802-Assembler Interface programmiert, da war das ganz einfach, Datenregister der PIA (6820) lesen, in dem Byte standen die highs und lows der Pins und los gings. Wie geht das mit dem Arduino? Hat jemand ein Codeschnipsel, das Ähnliches macht und ich evtl. anpassen kann? Bin für jeden Hinweis dankbar G.
Hallo, indem Du Dir den Schaltplan Deines Uno zu Gemüte führst und den MT8870 an die Pins eines AVR-Ports hängst. Die Zuordnung zu den Ardiono-Pinnummerns findest Du im Schaltplan des Uno. Weiter Infos im Datenblatt des ATMega328, der drauf ist. Dann eben einfach wert = PINx und Du hast alle Bits in wert. Ausmaskieren und weiterverarbeiten muß Du dann selber noch. Das x steht für den beutzten Port, also PINB, PINC oder PIND beim Mega328. Du kannst Dich an https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial orientieren, die nötigen includes für den AVR erledigt die Arduino-IDE bereits, Du kannst das also direkt in den sonstigen C++ Code in setup() oder loop()einbauen. PS: 6502 ist bei mir auch schon etwas her, Z80 auch... :) Gruß aus Berlin Michael
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.