www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM PIC18f4550


Autor: Abc E. (xeinettel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe 4 Dip Schalter. Bei diesen soll eine Frequenz von 200khz-300kHz 
einstellbar sein. Die Frequenz soll mittels PWM erzeugt werden. Wie kann 
ich das realisieren. Ich bitte Sie um Hilfe und ein paar Beispiele. Ich 
benutze den PIC 18f4550 mit einem 20MHz Quarz.

mfg

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wo liegt jetzt das Problem, beim Einlesen des Schalters oder beim 
Einstellen der PWM? Oder bei beidem?

Autor: Abc E. (xeinettel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei beiden.

mfg

Autor: dummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei beiden.

Prust....

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Elias

die Initialisierung könnte so aussehen. Das ist ein "Schnipsel" aus 
einem PIC18F1320 Programm:

Init:
  ADCON1 = 0x7c;    //0 = analog, 1 = digital
  TRISA = 0xef;               //1 = in, 0 = out
  TRISB = 0x13;


//  PWM:
  CCP1CON = 0b10001100;
  PWM1CON = 0x00;
  T2CON = 0b00010100;  //Timer2 on
  PR2 = 0xff;                //f
  CCPR1L = 0x80;             //Breite

Bei der PWM kann ich jetzt nicht sagen, was die Frequenz und was die 
Pulsbreite bestimmt, aber vermutlich stimmts.

Gerhard

Autor: Abc E. (xeinettel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe diese Befehle nicht da ich nur mit dem CCS Compiler 
arbeite. mfg

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist doch C-Code, den Gerhard da gepostet hat.

Du kannst also keine Tasten einlesen, keine PWM einstellen, kein C 
Programmieren oder Lesen, willst aber dein Projekt mit dem CCS-Compiler 
umsetzen....

Gibts überhaupt irgendwelche Grundlagen, die wir vorraussetzen können, 
oder sollen wir bei Herrn Ohm anfangen, und uns von dort langsam 
vortasten?

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wennst CCS verwendest, gibt es so viel ich weiß sogar Funktionen für PWM 
in einer Library.
Frag mich aber nicht wie die heißen und wo diese zu finden sind, dazu 
musst du dir nur die Mühe machen und in der CCS Hilfe nachsehen.


Was Gerhard dir geschickt hat ist die Initialisierung der Register.
Ob der CCS Compiler diese Register kennt bezweifle ich. In diesem Fall 
musst du diese Register in einer Header Datei mit #locate definieren.

z.B. #locate ADCON1   = 0xFF43

Welche Adressen diese Register haben findest du im Datenblatt des 
Controllers.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der CCS hat doch eine gute Hilfe. Schau dir im www.ccs-info.com/forum 
ein paar Beispiele an

Mal ein paar Tips:

setup_timer_2(T2_DIV_BY_4,255,1);  // Timer für PWM
set_pwm1_duty(pwm); //pwm=0..255
Pin B0 als input: set_tris_b(0b00000001)
Pins einlesen: b0=input(PIN_B0)

Thomas

Autor: Abc E. (xeinettel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas wrote:
> Der CCS hat doch eine gute Hilfe. Schau dir im www.ccs-info.com/forum
> ein paar Beispiele an
>
> Mal ein paar Tips:
>
> setup_timer_2(T2_DIV_BY_4,255,1);  // Timer für PWM
> set_pwm1_duty(pwm); //pwm=0..255
> Pin B0 als input: set_tris_b(0b00000001)
> Pins einlesen: b0=input(PIN_B0)
>
> Thomas

Dankeschön mit diesen Befehlen kann ich etwas anfangen. Ist es 
grundsätzlich möglich mit dem PIC einen Takt von ca. 300kHz zu erzeugen? 
Wenn ja, welche Einstellungen bzgl. Timer, PWM Periode... muss ich 
machen.

mfg

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PWM verwenden, um eine Frequenz zu erzeugen - unnötig aufwendig. Die 
Timer kannst Du mit einem Compare-Modul versehen und die Frequenz 
erzeugen.

Wenn schon PWM, dann ist eine Angabe über die Auflösung unabdingbar! 4 
Bit ( 16 Stufen) oder gar 10 Bit (1024 Stufen) ???

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.