Forum: Mikrocontroller und Digitale Elektronik Pic 12F675 Frequenz einlesen und geändert ausgeben


von Alex (Gast)


Lesenswert?

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

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

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

von Alex (Gast)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@ 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

von Alex (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Alex (Gast)


Lesenswert?

Hallo Falk,

die Frequenz sollte von 0-2MHz am Eingang bzw. Ausgang gehen.

Gruß
Alex

von holger (Gast)


Lesenswert?

>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.

von Peter D. (peda)


Lesenswert?

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

von Alex (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Alex (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@  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

von holger (Gast)


Lesenswert?

>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 :(

von Peter D. (peda)


Lesenswert?

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

von Alex (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Peter D. (peda)


Lesenswert?

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

von Alex (Gast)


Lesenswert?

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

von de_oli_78 (Gast)


Lesenswert?

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

von Severino R. (severino)


Lesenswert?

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