Hallo wer kann mir bitte helfen? ----------------------------------------------------------------------- 1) Ich möchte mit dem Pic 12F675 an einem Port eine Frequenz von 0-3MHz einlesen ändern und an einem anderen Port wieder ausgeben. Info zum ändern: Es wird z.B. eine Frequenz von 1500Hz eingelesen, dann möchte ich die Frequenz um +-30% ändern und wieder ausgeben (z.B. 1200Hz). Wer kann mir hierfür ein Beispiel mit einem Pic 12F675 geben? ----------------------------------------------------------------------- 2) Ich möchte an einem port eine Analoge Spannung 0-5V einlesen und Digital verarbeiten. z.B. eingelesener Wert 155 am AD Eingang Im Programm abfragen, ob der Wert: #anfang abfrage des AD-Ports AD-port = 155 if wert <= 0 goto port3 if wert > 0 and wert <147 goto port4 if wert > 147 and <180 goto port 5 goto anfang #port3 ausgang port3 aus return #port4 ausgang port4 aus return #port5 ausgang port5 an return Wer kann mir hier ein Beispiel geben, wie ich dieses Problem mit eiem Pic 12F675 lösen kann? ----------------------------------------------------------------------- Vielen Dank Alex
du wirst den pic mit einem externen quarz betreiben müssen denn der interne oscillator geht nur bis 4MHz damit verlierst du nochmal 2 pins. d.h. du hast nur noch 4 io pins und so wie ich aus deinem beitrag ersehen kann fehlt dir jetzt schon ein pin schau dir doch mal einen anderen pic an zur lösung des problems könnte man die eingangsfrequenz mit hilfe eines timers zählen also wieviel takte pro zeit? und dann mithilfe eines anderen timers die veränderte frequenz an einem andren pin ausgeben indem man ihn bis zu einem bestimmten wert zählen lässt und dann den pin invertiert nen paar beine mehr hat z.b. 16f684 der is auch soweit pincompatibel bis auf die weiteren 6 pins
Sorry, also 0-2Mhz reichen aus. Das unter 1) ist eine Problemstellung für sich und das unter 2) ist eine eigene Problemstellung. Also es sollen nicht beide in einem Pic 12F675 sonder je ein Pic 12F675.
@ Alex (Gast) >also 0-2Mhz reichen aus. Was auch nicht wenig ist. In dem Bereich ist die Zeitauflösung bescheiden. Man kann ja nur ganze Takte zählen. 8 MHz Quarz: :4 = 2 MHz :5 = 1,6 MHz :6 = 1,33 MHz :7 = 1,14 MHz :8 = 1 MHz >Das unter 1) ist eine Problemstellung für sich Wozu soll das überhaupt gut sein? >und das unter 2) ist eine eigene Problemstellung. Das ist ja eher trivial. Datenblatt lesen, umsetzen, fertig. MFG Falk
Dein Beispiel verstehe ich nicht. Wenn ich nur mit dem Datenblatt zurecht komme, würde ich hier nicht um Hilfe bitten. Ich habe von Pic's keine Ahnung und benötige deshalb für beide Problemstellungen Beispiele, damit ich sehen kann wie man das Programmiert. Danke
@ Alex (Gast) >Ich habe von Pic's keine Ahnung und benötige deshalb für beide >Problemstellungen Beispiele, damit ich sehen kann wie man das >Programmiert. Beispiel direkt für den PIC gibt es hier nicht, im wesentlichen nur für den AVR. Das Prinzip bleibt das Gleiche. Stichworte Input Capture und Output Compare Funktion, Timer. Ausserdem: >Ich möchte mit dem Pic 12F675 an einem Port eine Frequenz von 0-3MHz >einlesen ändern und an einem anderen Port wieder ausgeben. >Es wird z.B. eine Frequenz von 1500Hz eingelesen, dann möchte ich die >Frequenz um +-30% ändern und wieder ausgeben (z.B. 1200Hz). In welchem Frequenzbereich brauchst du das denn nun wirklich? 0-3 Mega hertz oder sollten das 3 Kilo Hertz sein? 3 kilo hertz sind schon wesentlich einfacher machbar. MFG Falk
Hallo Falk, die Frequenz sollte von 0-2MHz am Eingang bzw. Ausgang gehen. Gruß Alex
>die Frequenz sollte von 0-2MHz am Eingang bzw. Ausgang gehen.
Die 2MHz vergiss mal ganz schnell. Selbst wenn du den
extern mit 20MHz taktest kommst du da nicht hin.
Alex wrote: > die Frequenz sollte von 0-2MHz am Eingang bzw. Ausgang gehen. 0Hz geht prinzipiell nicht! Du mußt schon nen sinnvollen unteren Wert festlegen, der damit die Reaktionsgeschwindigkeit festlegt. Z.B. 0,1Hz = 10s Reaktionszeit. Und 2MHz ist auch viel zu viel für nen MC, selbst für nen 20MHz AVR, da hast Du keine Auflösung mehr. Peter
Hallo Peter, es ist schön, das Du mir sagst was nicht geht. Wie wäre es mal damit das Du mir sagst was geht. Also: 0,1 bis ..? Danke Alex
@ Alex (Gast) >es ist schön, das Du mir sagst was nicht geht. >Wie wäre es mal damit das Du mir sagst was geht. Sag lieber mal, wozu das gut sein soll. Das kann man vermutlich anders/besser lösen. MfG Falk
Mir geht es darum genau dies mit Pic's 12F675 zu lösen. Es hat keinen bestimmten Grund sonder ich möchte nur wissen wie dies funktioniert und es verstehen. MfG Alex
@ Alex (Gast) >Mir geht es darum genau dies mit Pic's 12F675 zu lösen. Es geht nicht wirklich! Über 1..10kHz können wir reden, darüber wird es ziemlich schnell Unsinn. Eingangssignal mit Input-Capture funktion messen. Frequenz umrechnen. Ausgangssignal mit Output-Compare ausgeben. >Es hat keinen bestimmten Grund sonder ich möchte nur wissen wie dies >funktioniert und es verstehen. Das ist eine äusserst exotisch-akademische Sache. Wo wird sowas gebraucht? Fällt mir spontan gar nix ein. MfG Falk
>Eingangssignal mit Input-Capture funktion messen. >Frequenz umrechnen. >Ausgangssignal mit Output-Compare ausgeben. Capture/Compare haben die Timer in diesem PIC nicht. Die kennen nur Overflow. Der kleine PIC ist für diese Aufgabe wirklich äußerst ungeeignet :(
Alex wrote: > Mir geht es darum genau dies mit Pic's 12F675 zu lösen. Zum Prinzip wurde ja schon das wichtigste gesagt. Wies mit dem PIC geht, weiß ich nicht. Ich benutze keinen PIC, ist mir zu kompliziert. > Es hat keinen bestimmten Grund sonder ich möchte nur wissen wie dies > funktioniert und es verstehen. Und warum dann gleich mit super-duper Weitbereich? Hast Du Angst, daß es sonst zu einfach wird? Zum Testen reicht ein Dymnamikbereich von 10:1 dicke aus. Und wenns funktioniert, erweitert man ihn schrittweise und löst die dabei auftretenden Probleme. Wenn Du erstmal als Bereich 300Hz ... 3kHz nimmst, kannst Du die korrekte Funktion prima akustisch überprüfen. Peter
Berichtigung ! ! ! Ich habe mich in der höhe der Frequenz vertan. ---------------------------------------------------------------------- Zu 1) Ich möchte mit dem Pic 12F675 an einem Port eine Frequenz von 0,1-3kHz einlesen ändern und an einem anderen Port wieder ausgeben. Info zum ändern: Es wird z.B. eine Frequenz von 1500Hz eingelesen, dann möchte ich die Frequenz um +-30% ändern und wieder ausgeben (z.B. 1200Hz). Wer kann mir hierfür ein Beispiel (Programmierung und Beschaltung) mit einem Pic 12F675 geben? ---------------------------------------------------------------------- MfG Alex
@ Alex (Gast) >Ich habe mich in der höhe der Frequenz vertan. >---------------------------------------------------------------------- >Zu 1) >Ich möchte mit dem Pic 12F675 an einem Port eine Frequenz von 0,1-3kHz >einlesen ändern und an einem anderen Port wieder ausgeben. Was sind schon drei Zehnerpotenzen ;-) >Wer kann mir hierfür ein Beispiel (Programmierung und Beschaltung) >mit einem Pic 12F675 geben? Isch abe gar geine Ahnung von PICs. MfG Falk
Schaltplan gibts doch: http://tachokonverter.de/ Programm für umme gibts dort aber nicht, mußte wohl selber schreiben. Oder googlen, dann wärs aber dumm, sich nur auf einen Typ zu fixieren. Ich versteh schon, daß die PICser ihre Programme ungern für umme rausgeben, kostet ja bestimmt ne ganze Menge mehr Zeit, damit zu programmieren. Peter
Hallo Peter Mit dem Schaltplan kann ich nicht viel anfangen. Erstens sind dort keine Bautelwerte eingezeichnet. Zweitens kann ich da auch nicht sehen, ob es für die Frequenzen die ich mir vorstelle (0,1-3kHz) funktionieren tät. Mfg Alex
Moin moin, wer lesen kann, ist klar im Vorteil. :-P Die Werte der Bauteile sind beschrieben. Einfach mal die Bauanleitung auf der angegebenen Seite herunterladen und schon ist alles nachlesbar. Viele Grüße aus Kiel
@ de_oli_78 Glaubst Du, das hat er in den acht Monaten seit seinem Post nicht selber herausgefunden?
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.