mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einlesen von frequenz über CCP Eingänge


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle PWM Profis,

Ich versuche gerade ein Programm zu schreiben. Das Programm sollte die 
Frequenz der Frequenzgenerator über die CCP Eingänge einlesen. Ich weiss 
leider nicht, wie ich anfangen sollen.

Die letzten Tage habe ich mich mit der Einstellung in Compiler 
beschäftigt.


Um den PWM-Mode zu aktivieren habe ich folgendes gemacht:
Die Periode der Rechteckschwingung eingestellt.
Das pulsverhältnis (duty-cycle) eingestellt.
Das CCP Pin zum Ausgang gemacht.
Den PWM-Mode aktiviert

war es richtig was ich gemacht habe?

Autor: Gerd B. (silicat) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei fast allen Controllern kann man den Pin entweder als

CCP Eingang ODER als
PWM Ausgang konfigurieren

Wie ich das lese, hast Du bisher den als PWM Ausgang konfiguriert.
Du must jetzt also dein µC auf CCP Einlesen konfigurieren.
Bei jeder steigenden oder fallenden Flanke muss dann ein Interrupt 
ausgelöst werden. Dann muss eine Funktion aufgerufen werden, die die 
aktuelle Zeit speichert die Differenz zur letzten Flanke berechnet.

Hier ein Beispiel, wie ich es mal bei einem HC08 gemacht habe:
@interrupt void Isr_Tim1Ch0(void)
{
volatile char dummybyte;
typ_word captured; 

  /* Interrupt Flag loeschen*/

  dummybyte=t1sc0.byte;
  t1sc0.bit.ch0f=0;


  captured.byte.high=t1ch0h.byte; /* erst MSB */
  captured.byte.low =t1ch0l.byte; /* dann LSB lesen       */


 /* Flanke */

  // Berechnung Periodendauer
  pwmin_periode0=captured.word-starttime_periode0;
    
  /* Timer Wert sichern */
  starttime_periode0=captured.word;



Gruß, siliCAT

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke siliCAT,

Leider hat mir das Beispiel nicht zu viel geholfen!

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.