#include <p18f4550.h>
#pragma config FOSC = HSPLL_HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PLLDIV = 4
#pragma config CPUDIV = OSC1_PLL2
#define T0L 0b10111111
#define T0H 0b11100000
#define PWM_PR2 99
void init(void)
{
TRISCbits.RC2 = 0;
TRISDbits.RD5 = 0;
T2CON = 0b00000101;
PR2 = PWM_PR2;
CCP1CON = 0b10001100;
CCPR1L = 0b00011110;
INTCONbits.TMR0IE = 1;
INTCONbits.GIE = 1;
}
void main(void)
{
init();
while(1)
CCPR1L = 50;
}
Desava mi se da RC2 (P1A) i RD5 (P1B) nisu komplementarni vec se poklapaju.
Deadtime je ignorisan (kada ga dodam uz pomoc ECCP1DEL to jest). Tacnije postoji mogucnost da nije, vec da su RC2 i RD5 jedan te isti signal, posto kada ECCP1DEL postoji, trajanje signala na 50% DC je manje od pola.
Ovo je kod skracen kolko je bilo moguce ne bih li izolovao problem, i sad sam konacno ostao bez ideja. Verovatno (ili pak sigurno) je neka moja greska/previd, ali vise ne znam u sta da gledam...
Pomagajte ako mozete!