Forum: Mikrocontroller und Digitale Elektronik Arduino + MT8870


von Georg R. (u076607)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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
Noch kein Account? Hier anmelden.