www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu CCP


Autor: Holla Die waldfee (schlucke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir vielleicht jemand sagen, was ich sofwaremäßig habe, wenn ich 
mit einem capture-eingang arbeite??

ich will eine Drehzahl einlesen, weiß aber nicht, was mir ich für werte 
habe, wenn ich die capturevariable weitergebe.

ich arbeite immer noch mit dem picdem mechatroniks demoboard mit einem 
PIC16F917 (Beitrag "PICDEM Mechatronics Board mit PIC 16F917")

generiert mir der PIC direkt eine Drehzahl, eine Zeit oder was macht 
der??


mit dem datenblatt komme ich da irgendwie nicht weiter.


Gruß,

Andreas.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gegenfrage: Was macht den der Capture Eingang an deinem
Board?

Wenn das mehr oder weniger dasselbe macht wie auf einem AVR,
dann macht es doch dieses:

Ein Timer zählt frisch, fröhlich vor sich hin.
Tritt ein Ereignis am Capture Eingang auf, dann wird
der Zählerstand des Timers zur gefälligen Betrachtung
durch das Programm gesichert.

Nehemn wir mal an, der Timer beginnt bei 0 und zählt
so vor sich hin. Kommt das Ereignis früher, dann kann
er logischerweise nicht so weit zählen, als wie wenn
das Ereignis später auftritt. Der Zählerstand ist
also ein Mass dafür, wieviel Zeit vom Beginn der Zählerei
(bzw. vom Auftreten des letzten Capture Ereignisses) bis
zum Auftreten des Capture Ereignisses vergangen ist.
Du weist ja wie schnell der Timer zählt. Aus dem Zähler-
stand kann daher direkt die Zeit errechnet werden.

Daraus kannst du dann zb. eine Frequenz erechnen. Denn wir
wissen ja: F = 1/t  (je größer die Zeit, desto kleiner
die Frequenz und umgekehrt)

Autor: Holla Die waldfee (schlucke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, versteh ich.

Der Capture eingang wir über einen optischen interrupter 
(drehzahlsensor) gepulst. wie krieg aus dem signal jetzt die 
entsprechende frequenz??? das ist meine eigentliche frage.

zählt der timer immer von 0 los bis das nächste high signal kommt oder 
wie läuft das?

>... ja: F = 1/t ...

ist schon klar.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist völlig egal, bei welchem Zählerstand der Timer anfängt zu zählen. 
Entscheidend ist die Differenz von zwei Ereignissen. Anhand des 
Zähltaktes und der Pulse pro Umdrehung Deines Sensors kann man auf die 
Drehzahl schließen. Vielleicht müßte man noch schauen bei welcher Flanke 
(steigend,fallend,beide), der Capture-Interrupt ausgelöst wird. Wenn er 
auf beide Flanken reagiert bekommst Du doppelt so viele Impulse pro 
Umdrehung.

Autor: Holla Die waldfee (schlucke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kriege ich die Differenz denn?

Muss ich dann in der capture isr sowas schreiben wie
Differenz=wert-CCP_1

wert=CCP_1

oder ist CCP_1 dann schon der Differenzwert, sprich die Periode bzw. 
halbperiode??

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas H. wrote:
> Wie kriege ich die Differenz denn?

Durch Subtraktion.

Du merkst Dir den aktuellen Zeitstempel und subtrahierst von einer Kopie 
des aktuellen Zeitstempels den beim letzten mal gemerkten Zeitstempel.


>
> Muss ich dann in der capture isr sowas schreiben wie

Ja aber sicher doch.

>
>
> Differenz=wert-CCP_1
> 
> wert=CCP_1
> 
>
> oder ist CCP_1 dann schon der Differenzwert, sprich die Periode bzw.
> halbperiode??

CCP_1 kenne ich nicht, ich bin kein PICler.

...

Autor: Holla Die waldfee (schlucke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>CCP_1 kenne ich nicht, ich bin kein PICler

CCP_1 ist soweit ich das bisher rausgefunden habe der Variablenname der 
CCP-isr

Autor: Brill (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu irgend einem Zeitpunkt sollte man das Datenblatt anschauen... genau 
anschauen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.