Estoy usando un pic16f877A para conducir un motor de CC con PWM, el pwm funciona bien pero tengo un gran problema, entre el 0-30% del ciclo de trabajo del PWM El motor no funciona, solo vibra, sé que hay es una técnica llamada inicio suave para estas situaciones, pero no tengo una idea clara de cómo hacerlo a través del software (por cierto, estoy usando MPLab X IDE). ¿Hay alguien que pueda aconsejar sobre esto? Sé que hay algunas formas de implementarlo físicamente, pero preferiría que fuera a través del software El código que estoy usando para pwm es el siguiente:
list P=16f876A
INCLUDE <p16F876A.INC>
__config _CP_OFF& _DEBUG_OFF& _WRT_OFF& _CPD_OFF& _LVP_OFF& _BOREN_OFF& _PWRTE_ON& _WDTE_OFF& _XT_OSC
org 0x00
CLRW
BCF STATUS,RP0
RETARDO EQU 0x20
CLRF PORTA
CLRF PORTC
BSF STATUS,RP0
MOVLW 0x01
MOVWF TRISA
CLRF TRISC
MOVLW 0x0E
MOVWF ADCON1
MOVLW 0xF9
MOVWF PR2
BCF STATUS,RP0
MOVLW 0xC1
MOVWF ADCON0
TIMER2
MOVLW 0x05
MOVWF T2CON
MOVLW 0x0C
MOVWF CCP1CON
CICLO BSF ADCON0,2
BTFSC ADCON0,2
GOTO CICLO
MOVF ADRESH,W
MOVWF CCPR1L
CALL TEMPO
GOTO CICLO
TEMPO MOVLW 0x01
MOVWF RETARDO
TEMPO1 MOVLW 0xFA
TEMPO2 ADDLW -d'1'
BTFSS STATUS,Z
GOTO TEMPO2
DECFSZ RETARDO,F
GOTO TEMPO1
RETURN
END