mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einfache PWM mit dsPIC33F gesucht


Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe hier ein MicroStick board mit dsPIC33FJ64MC802 und moechte eine 
einfache PWM mit (zunaechst) festem Teilerverhaeltnis realisieren. Ich 
habe schon das Datenblatt sowie eine lange Internetsuche hinter mir, 
finde aber keinen Code der mir sagt wie ich dazu die nicht geringe Menge 
an PWM-Registern initialisieren muss. Hat jemand eine funktionierende 
Init-Routine die er mir zeigen koennte? Das Datenblatt ist was das 
angeht wirklich nicht aussagekraeftig...

Vielen Dank!

Jan

Autor: Michael H. (morph1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
erstmal nen timer einschalten, in dem falle nehm ich timer 3:
void timer3Init(void)
{
  T3CON = 0x00;      // Stops the Timer3 and reset control reg.
  TMR3 = 0x00;      // Clear contents of the timer register
  PR3 = 0xFFFF;      // Load the Period register
  _T3IF = 0;        // Clear the Timer3 interrupt status flag
  _T3IE = 0;        // Enable Timer3 interrupts
  
  T3CONbits.TCKPS  = 0;  // prescaler settings at 1:1
  T3CONbits.TON = 1;    // Start Timer3 clock source set to the internal instruction cycle  
}

dann die pwm einschalten
#define  PWM_FREQ    2500
#define PWM_PR      FCY/PWM_FREQ

void pwm1Init(void)
{
  OC1CONbits.OCM = 0b000;    // Disable Output Compare Module
  OC1R = PWM_PR/2;      // Write the duty cycle for the first PWM pulse
  OC1RS = PWM_PR/2;        // Write the duty cycle for the second PWM pulse
  PR3 = PWM_PR;        // Write the cycle for complete cycle
  OC1CONbits.OCTSEL = 1;    // Select Timer 3 as output compare time base
  OC1CONbits.OCM = 0b110;    // PWM mode
}

und dann genießen, in dem falle mit dem verhältnis 50/50.


aber um ehrlich zu sein, das alles steht im family datasheet... wo du 
dann auch das initialisieren des PPS findest, sonst zuckt da ja sowieso 
nichts :)

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank! Nach dem setzen der PPS hat es gut geklappt! Hatte mich 
erst im MotorControlPWM Kapitel verlaufen, aber die capture compare unit 
dazu zu benutzen geht ja auch :-) Vielen Dank!

Gruss,

Jan

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.