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ß
Wenn die Signalform nicht von Bedeutung ist, brauchst Du gar keinen ADC. Am Besten an einem Eingang mit Schmitt-Trigger anschliessen. Musst Du die Frequenz bestimmen, oder einfach erkennen, dass sich da "irgend etwas tut"?
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
Warum willst Du nicht Klartext sprechen? Geht es um eine Demodulation von DiSEqC-Signalen? Wenn ja, dürfte die folgende App Note interessant sein: http://www.eutelsat.org/satellites/pdf/Diseqc/associated%20docs/applic_info_PIC_microcontroller.pdf Übrigens: > d.h. das 22KHz Signal ist moduliert Das Nutzsignal ist wohl moduliert mit einem 22kHz-Signal
@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ß
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.