ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Analisis de codigo PWM en PIC16F887


Enviado por   •  5 de Mayo de 2022  •  Apuntes  •  275 Palabras (2 Páginas)  •  70 Visitas

Página 1 de 2

Análisis del código original

void InicializarPWM(void){

 TRISC2_bit = 0;  //Pin CCP1 Como salida, localizado en el pin 2 del puerto C (17)

 CCP1CON = 0X0C;  //Configura el pin CCP1 Como PWM (0b00001100)

 PR2 = 0XFF;      // Configuración inicial del periodo PWM (Al máximo: 255)

 T2CON = 0X01;    // Configura el preescaler para una frecuencia 4.88kHZ (Para un oscilador de 20Mhz)

}

 

void AnchoPulsoPWM(unsigned Pulso){  //Pulso: valor de 10 bits entre 0 y 1023

 CCPR1L = Pulso>>2;                //Asignamos los 8 bits altos a CCPRL1

EJEMPLO CON DATO DE LONGITUD DE 1023 BITS (100% DC)

 //1024 -> 0011,1111,1111>>2 -> * 0000,1111,1111

 //1024 -> 0011,1111,1111<<4 -> * 1111,1111,0000

0

0

1

1

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

1

&

x

C

F

1

1

0

0

1

1

1

1

CCPR1L

1

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

&

x

3

0

0

0

1

1

0

0

0

0

0

0

1

1

0

0

0

0

CCPR1L

|

1

1

1

1

1

1

1

1

 //al ser de 10 bits lo “jalamos” a la derecha, para ajustarlo a los 8 bits de CCPRL1

 CCPR1L &= 0xCF;                    //Limpiamos los bits 5 y 4 poniendo 0

 //si ya asignaste 8 bits a CCPR1L ahora con & operamos 0b1100,1111

...

Descargar como (para miembros actualizados) txt (2 Kb) pdf (32 Kb) docx (10 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com