Forum: Mikrocontroller und Digitale Elektronik PIC 18F1320 PWM probleme


von Marco S. (sharkman)


Lesenswert?

Hi.

Irgendwie bring ich die PWM auf dem chip nicht ans laufen. Könnte da 
vielleicht mal jemand drüber schauen, ob ich an irgendeiner Stelle 
vergessen habe ein Bit zu setzen.

Ich arbeite mit MPLAB und dem C18 von Microchip.
1
void MotorOutputInit(void){
2
  TRISB = TRISB & 0xC7;  //RB<5:3> digital Output
3
  INTCON2bits.RBPU = 1;  //disable all internal Pull-Ups
4
  PORTB = 0X00;
5
  CCP1CON = 0x0C;      //<7:6> Single Output
6
              //<5:4> LsB of PWM duty cycle
7
              //PWM Mode: P1A und P1B active high
8
  PR2 = 50;        //PWM Period 25us @ TMR2 prescale = 1
9
  T2CONbits.T2CKPS1 = 0;  //Timer 2 prescaler = 1
10
  T2CONbits.T2CKPS0 = 0;
11
  ECCPAS = 0x00;
12
  PWM1CON = 0x00;
13
  CCPR1L = 127;      //PWM Duty Cycle
14
15
  PIR1bits.TMR2IF = 0;  //clear TMR2 interrupt flag
16
  PORTBbits.RB5 = 1;
17
  T2CONbits.TMR2ON = 1;  //Start
18
}

von stephan_ (Gast)


Lesenswert?

PR2 muss grösser sein als CCPR1L, PR2 gibt die Frequenz vor, das 
Verhältnis CCPR1L / PR2 den Duty cycle (bei Dir ist es gerade umgekehrt, 
PR2 ist kleiner)

von Marco S. (sharkman)


Lesenswert?

Besten Dank.

Ich wusste ich hab selber wieder irgendetwas übersehen.

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.