Autor Tema: Generar dos señales PWM  (Leído 2323 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Generar dos señales PWM
« en: 22 de Julio de 2006, 16:06:10 »
Hola, estoy haciendo un programa de prueva que genere dos señales PWM, pero no consigo un ciclo del 100%.

El retardo simula las instrucciones que formarian el resto del programa.

Código: [Seleccionar]
# include <16F876a.h>
# use delay(clock=4000000)
# fuses HS,NOWDT,NOPUT,PROTECT,NODEBUG,NOBROWNOUT,NOLVP,CPD

# USE FAST_IO(A)
# USE FAST_IO(B)
# USE FAST_IO(C)
long var1, var2;

void main(){
Setup_Timer_2(T2_DIV_BY_1,124,2);
Setup_CCP1(CCP_PWM);
Setup_CCP2(CCP_PWM);

var1=100;
var2=1023;

While(1){
Set_PWM1_Duty(var1);
Set_PWM2_Duty(var2);
delay_ms(100);
}
}

Saludos y gracias.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Generar dos señales PWM
« Respuesta #1 en: 22 de Julio de 2006, 16:34:22 »
Por que no sacas los set_pwm fuera del bucle while. Si no cambias los ciclos sacalo fuera.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Generar dos señales PWM
« Respuesta #2 en: 22 de Julio de 2006, 16:39:55 »
Hola, hace exactamente lo mismo. ¿No será el proteus? estoy usando la version 6.7

Saludos y gracias.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Generar dos señales PWM
« Respuesta #3 en: 22 de Julio de 2006, 16:50:50 »
Puedes poner una imagen del osciloscopio con los PWM's

Saludos
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Generar dos señales PWM
« Respuesta #4 en: 22 de Julio de 2006, 17:05:36 »
Hola, esta es la imagen:



la señal de arriba es la pwm1 y la de abajo es la pwm2

Saludos y gracias.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Generar dos señales PWM
« Respuesta #5 en: 22 de Julio de 2006, 18:03:48 »
Ahora mismo no tengo delante el CCS pero parece ser que no esta definido el PWM a 10 bits.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: Generar dos señales PWM
« Respuesta #6 en: 23 de Julio de 2006, 10:13:13 »
te cuento lo que me paso a mi: estuve probando con diferentes tipos de variables y opte por usar int8 con el valor de periodo de 255 en el timer2

lo que hace es esto : en el modulo de la variable , el 0 representa  0 de duty y el 255 el 100 del duty . tiene que llegar. Si usas 124 en el timer 2 ese va a ser tu 100 %.

otro dato : cuidado con el oosciloscopio ya que yo tengo uno ( real ) y para algunas frecuencias no puedo visualizar la totalidad de la variacion del duty sin retocar el triger ( o no veo parte del duty bajo  o  no veo parte del alto)

otra cosa que podes hacer es probar con distintos valores del duty y de periodo del timer 2 pero sin usar variables, cargale numeros al valor del duty y fijate que hace. pero despues tenes que adaptar esos valores a los lacances de la variable.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Generar dos señales PWM
« Respuesta #7 en: 23 de Julio de 2006, 15:49:07 »
Hola, asunto solucionado, he probado a poner esto:  Setup_Timer_2(T2_DIV_BY_1,255,1);
y puedo regular el duti-cicle del 0 al 100% con una variable de tipo int16.

Gracias por vuestra ayuda.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡