
agradezco su respuesta
Discusiones similares
| 04-feb-2012 | #1 |
| Ubicación: colombia Mensajes: 11 | PWM PIC 16f877a
buenas tardes. soy nuevo en el tema de los microcontroladores. como tarea tengo hacer un PWM con un PIC 16f877a con el protonIDE. he tratado modificando los registros ccp1con, t2con, ccpr1l y pr2. pero no me funciona y ya no entiendo bienn que hacer con el CCPR1L y el PR2 que tienen que ver con el ciclo de dureza. podrían darme un ejemplo simple de un PWM en el PROTON para basarme y hacer mi trabajo? me creo capaz de manejar el conversor A/D del micro para variar el ciclo de dureza una vez tenga un PWM que funcione ![]() agradezco su respuesta |
| Citar |
| 04-feb-2012 | #2 |
| Ubicación: Dentro del Código Mensajes: 529 | buenas tardes. soy nuevo en el tema de los microcontroladores. como tarea tengo hacer un PWM con un PIC 16f877a con el protonIDE. he tratado modificando los registros ccp1con, t2con, ccpr1l y pr2. pero no me funciona y ya no entiendo bienn que hacer con el CCPR1L y el PR2 que tienen que ver con el ciclo de dureza. podrían darme un ejemplo simple de un PWM en el PROTON para basarme y hacer mi trabajo? me creo capaz de manejar el conversor A/D del micro para variar el ciclo de dureza una vez tenga un PWM que funcione Este ejemplo es del mismo programa Proton Compiler. Código: ' Demonstrate Hardware PWM
' Output a 1KHz signal with duty cycle sweeping from 20% to 80% once per second
Device 16F877A
Declare Xtal 4
Dim Duty As Word ' Duty cycle value (CCPR1L:CCP1CON<5:4>)
TRISC.2 = 0 ' Set PORTC.2 (CCP1) to output
CCP1CON = %00001100 ' Set CCP1 to PWM
T2CON = %00000101 ' Turn on Timer2, Prescale=4
PR2 = 249 ' Set PR2 to get 1KHz out
Duty = 200 ' Set duty cycle to 20%
Loop:
CCP1CON.4 = Duty.0 ' Store duty to registers as
CCP1CON.5 = Duty.1 ' a 10-bit word
CCPR1L = Duty >> 2
Duty = Duty + 10 ' Increase duty cycle
DelayMS 17 ' Delayms 1/60 of second
If Duty < 800 Then Loop ' Do it again unless 80% duty cycle
Duty = 200 ' Reset to 20% duty cycle
GoTo Loop ' Do it forever Hay un post en donde lograron tener hasta 8 salidas PWM independientes con un PIC16F628A y esta escrito con Proton. |
| Citar |
| 05-feb-2012 | #4 |
| Ubicación: colombia Mensajes: 11 |
lo simulo en Proteus y no funciona no da la señal cuadrada. solo tengo el pic configurado a la misma frecuencia de reloj del programa (4MHZ) , el osciloscopio y el PIN MCLR del PIC a power con la patita CCP1 al oscilocopio. ¿necesita algo mas para simular?
|
| Citar |
| 06-feb-2012 | #9 |
| Ubicación: Dentro del Código Mensajes: 529 | HPWM sirve para generar PWM solo en los PIC que tienen puertos para esa función. (Hardware) La Instrucción PWM lo genera por software y se puede usar cualquier PIC y cualquier pin. Suerte y hasta luego. |
| Citar |