PIC18F1320 con 4 canales PWM separados y compilador C18 para un LED RGB

2

Soy bastante nuevo en la programación de microcontroladores y me parece que la falta de documentación sobre ciertas características de los PIC con el compilador C18 es frustrante. He estado tratando de hacer una luz simple de 3 colores usando PWM para cada canal, pero parece que no puedo entender cómo usar la función PWM mejorada con ECCP de PIC18F1320.

Tengo un par de otros PIC18F (2550, 1320, 4450 para nombrar algunos), por lo que probar otros es una opción, pero específicamente obtuve los 1320 porque tenían PWM mejorado, página 115 en Hoja de datos .

Tengo un código para pulsar lentamente el canal de 1 led utilizando PWM normal, lo he adjuntado aquí . Estoy usando pwm.h include y sus funciones auxiliares, pero la gente ha mencionado simplemente configurar los registros manualmente. Estoy confundido en cuanto a cómo establecería los específicos que menciona el manual, están en un formato al que no estoy acostumbrado, algo como CCP1M<3:2> = /

Sigo encontrando trozos de material útil por ahí y aprendiendo constantemente sobre lo que hay dentro de estas cosas, así que espero que con tu ayuda pueda entender todo esto y hacer un código básico para iluminar este maldito LED = D

    
pregunta Yarek T

1 respuesta

1

Tenga en cuenta que el PIC18F1320 todavía tiene un solo módulo PWM. Esto significa que no puede tener 3 señales de salida PWM independientes. Las '4 señales de salida' en el manual significan que el módulo PWM puede manejar las 4 patas de un puente H con la sincronización adecuada, pero dependen unas de otras (consulte la figura 15-5 en la hoja de datos).

Con respecto a las descripciones de registro: CCP1M < 3: 2 > significa los bits 2 y 3 de los bits de selección CCP1M (en realidad son 4 bits, pero solo los dos superiores son de interés). La forma más fácil de establecer estos registros es mediante las descripciones de los registros:

CCP1CONbits.CCP1M=42;

También puede usar CCP1CON directamente, pero luego escribe todos los bits de este registro directamente.

    
respondido por el hli

Lea otras preguntas en las etiquetas