Arduino + MT8870

OP #4554829
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.
#4554886
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren