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 | }
|