Frequenz detektieren PIC 12F683

OP (Firma: Monster AG) #832855
Lesenswert?
• ▲
▼
Hallo in die Runde,

ich bin auf dem Gebiet von PICs und Assemblerprogrammierung ein 
absoluter Newbie. In meinem Studium habe ich nun ein Projekt am Laufen, 
wo ich mich in einen PIC 12F683 einarbeiten soll. Grundlegende Dinge 
kann ich nun schon : GPIO als Ausgang etwas anzeigen lassen, Interrupt 
auslösen, ADC nutzen....

Nun zu meiner Frage, ich soll später mit diesem PIC Frequenzen bis zu 22 
KHz detektieren können, d.h. wenn an einem ADC-Port eine bestimmte 
Frequenz anliegt, soll der PIC etwas tun. Dass ich mit dem PIC keine 
richtige Abtastung machen kann ist mir völlig klar ist ja kein teurer 
DSP ;) Ich hoffe ihr könnt mir ein paar Ideen zukommen lassen wie ich 
das programmier- und hardwaretechnisch lösen könnte.

Vielen Dank im Voraus
Gruß
OP (Firma: Monster AG) #833067
Lesenswert?
• ▲
▼
Hallo,

danke für die schnelle Antwort!

@Rudi meinst du im Assembler Compare? den gibt es für den 12F683 leider 
nicht :(

@Severino R. später soll ein 22KHz Signal mit einem Offset von 14-17 
Volt den PIC dazu bewegen etwas zu machen, d.h. das 22KHz Signal ist 
moduliert, deswegen wollte ich erst einmal klein anfangen und schauen, 
wie kann man den PIC ansteuern, dass er bestimmte Frequenzen erkennt und 
irgendwas machen soll.

Nachtrag:
P.S.: Schmitt Trigger ist ganz gut, aber ich soll die Schaltung 
möglichst klein halten!

Danke euch
OP (Firma: Monster AG) #833261
Lesenswert?
• ▲
▼
@Rudi sorry, jetzt weiss ich was du meintest habe das mit dem Capture / 
Compare in dem PIC-Datasheet gefunden ! Die Idee ist super.


@Severino R. ja es soll später für DiSEqC sein, aber mir ging es jetzt 
eher darum zu erkennen, wann ein bestimmtes Signal nun auf der Leitung 
ist. Das pdf kenne ich da schon, aber dieser Ansatz bringt mich auf 
keine Idee wie ich das im PIC mit Assembler umsetzen soll, deswegen 
fange ich klein an.

Ich habe auch schon eine eigene Idee, ich tu einfach einen GPIO-Pin auf 
digital schalten und überprüfe mit einem Interrupt die positive Flanke, 
starte einen Timer bis die nächste pos. Flanke kommt, mit Hilfe des 
Timer kann ich doch ein Register als Laufvariable immer hochzählen 
lassen. Ist die nächste positive Flanke am Eingang, stoppt die 
Laufvariable die ich dann mit einem festen Wert vergleiche. Muss ich 
wohl mit Subtraktion machen weil leider kein "compare" für diesen PIC 
gibt.
Wäre das eine Lösung ?

Ich hoffe meine Denkweise ist korrekt ;)

Gruß

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