Autor Tema: PWM en el pic16f873a  (Leído 3413 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado mecatronicomarc

  • PIC10
  • *
  • Mensajes: 4
PWM en el pic16f873a
« en: 30 de Octubre de 2006, 03:03:49 »
tdo el dia me e estado rompiendo la cabeza en que estoy mal!

este simple codigo deberia sacar una señal del pwm, siguiendo las hojas de especificaciones

                LIST  P=16F873A
                  RADIX HEX
             INCLUDE "p16f873A.inc"
      org 0x0
      bsf         STATUS,5
      clrf      TRISC
      movlw      b'11111111' ;le meto 128 uno le doy periodo a mi pwm
      movwf      PR2     ;le meto un periodo de .516 milisegundos[1.3 KHz de frecuencia]
      bcf         STATUS,5
DENU
      movlw      b'00010000' ; le doy duty cicle
      movwf      CCPR1L
      movlw      b'00001100'
      movwf      CCP1CON      ;configuro para pwm
      movlw      b'00000111' ;ya habiendo configurado el puerto c como salida
      movwf      T2CON
PWMS

      goto      PWMS





      END

Pero no!...se supone que al terminar el tmr2=pr2 deberia pasar el ccpri1l al ccpr2H y poner en alto la patita RC2 pero no pasa nada de nada...lo estoy simulando en el pic simulator ID y deplano nada de nada alguien puede ayudarme ?!!

gracias

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: PWM en el pic16f873a
« Respuesta #1 en: 30 de Octubre de 2006, 04:04:41 »
Hola.
¿Cómo que no pasa de nada?
Si aca en el MPLAB SIM funciona tu programa.

Lo que si te puedo recomendar para que luego por ahi no tengas dolores de cabeza, es que te asegures estar en el banco correcto.
Cambiar
    
Código: ASM
  1. bsf       STATUS,5

Por:

Código: ASM
  1. bcf     STATUS,RP1
  2. bsf     STATUS,RP0
Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Deimos

  • Visitante
Re: PWM en el pic16f873a
« Respuesta #2 en: 30 de Octubre de 2006, 12:00:54 »
Y donde sirves la interrupcion de timer???? No veo donde habilitas la interrupcion del timer2, ni donde reconoces la interrupcion. Tampoco veo que actives GIE ni PEIE. No se, tampoco habilitas la interrupcion de CCP. Personalmente nunca habia visto hacer una pwm así. No dudo que no se pueda hacer, pero a mí me faltan bastantes cosas en este fuente.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PWM en el pic16f873a
« Respuesta #3 en: 30 de Octubre de 2006, 12:54:19 »
Y donde sirves la interrupcion de timer???? No veo donde habilitas la interrupcion del timer2, ni donde reconoces la interrupcion. Tampoco veo que actives GIE ni PEIE. No se, tampoco habilitas la interrupcion de CCP. Personalmente nunca habia visto hacer una pwm así. No dudo que no se pueda hacer, pero a mí me faltan bastantes cosas en este fuente.

Deimos, creo que estás confundido, El PWM no necesita tener una interrupción habilitada para funcionar, solamente que corra el TIMER2.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Deimos

  • Visitante
Re: PWM en el pic16f873a
« Respuesta #4 en: 30 de Octubre de 2006, 13:13:17 »
Hombre no me digas eso, como que
Y donde sirves la interrupcion de timer???? No veo donde habilitas la interrupcion del timer2, ni donde reconoces la interrupcion. Tampoco veo que actives GIE ni PEIE. No se, tampoco habilitas la interrupcion de CCP. Personalmente nunca habia visto hacer una pwm así. No dudo que no se pueda hacer, pero a mí me faltan bastantes cosas en este fuente.

Deimos, creo que estás confundido, El PWM no necesita tener una interrupción habilitada para funcionar, solamente que corra el TIMER2.

Saludos



Hombre no me digas que no necesitas interrupcion para funcionar. Con el timer 2 le das la frecuencia, pero con CCPxIF le das el tiempo de duty cycle. Además que aunque solo esté la interrupcion de timer 2, tanto GIE como PEIE deberian estar habilitadas. Y en el fuente configura el timer 2 pero no habilita las interrupciones.

No dudo que no funcione maunix, pero no se....... a mi me falta fuente por todas partes jajajaja quizas el problema sea mio, que soy un enfermo de la configuracion jajaja y toco todos los registros aunque no haga falta configurarlos.

Seguramente tienes más razón que yo.

PD: El pueblo no se va!!!! el pueblo no se va!!!! el pueblo no se va!!!!

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: PWM en el pic16f873a
« Respuesta #5 en: 30 de Octubre de 2006, 13:15:19 »
Hola mecatrónicomarc:

Revisa esto:
http://www.interq.or.jp/japan/se-inoue/e_pic6_9.htm

Esta persona tiene una página interesante y aquí coloca un control de velocidad usando PWM (en ensamblador).

Sigue los enlaces hasta que llegues al diagrama de flujo, a el programa y, a la explicación de cada uno de los segmentos de programa.

Mientras que escribía esto, surgió la respuesta de Deimos.
Coincido con Mauricio en que no necesitas configurar las interrupciones pero la página que presento lo hace  :?
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PWM en el pic16f873a
« Respuesta #6 en: 30 de Octubre de 2006, 13:22:39 »
Hombre no me digas eso, como que
Y donde sirves la interrupcion de timer???? No veo donde habilitas la interrupcion del timer2, ni donde reconoces la interrupcion. Tampoco veo que actives GIE ni PEIE. No se, tampoco habilitas la interrupcion de CCP. Personalmente nunca habia visto hacer una pwm así. No dudo que no se pueda hacer, pero a mí me faltan bastantes cosas en este fuente.

Deimos, creo que estás confundido, El PWM no necesita tener una interrupción habilitada para funcionar, solamente que corra el TIMER2.

Saludos



Hombre no me digas que no necesitas interrupcion para funcionar. Con el timer 2 le das la frecuencia, pero con CCPxIF le das el tiempo de duty cycle. Además que aunque solo esté la interrupcion de timer 2, tanto GIE como PEIE deberian estar habilitadas. Y en el fuente configura el timer 2 pero no habilita las interrupciones.

No dudo que no funcione maunix, pero no se....... a mi me falta fuente por todas partes jajajaja quizas el problema sea mio, que soy un enfermo de la configuracion jajaja y toco todos los registros aunque no haga falta configurarlos.

Seguramente tienes más razón que yo.

PD: El pueblo no se va!!!! el pueblo no se va!!!! el pueblo no se va!!!!

Deimos , no es cuestión de tener mas o menor razón en un tema , trato de ser objetivo en el punto, nada más.

Siendo más general, cualquier módulo del PIC funciona perfectamente sin el GIE habilitado, o sin su interrupción habilitada.

Las interrupciones las usamos cuando queremos que el micro responda de inmediato a algún estímulo, pero no es obligatorio que así sea.

De hecho en el caso puntual del PWM, la interrupción serviría , en todo caso para cambiar el duty cycle o para detener el pwm si así lo deseamos, etc.  Pero el PWM correrá y correrá sin parar, mientras el Timer2 esté corriendo, con o sin interrupciones.

Incluso si cambiamos el duty cycle, el mismo entrará en vigencia en el próximo ciclo.

Saludos



- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Deimos

  • Visitante
Re: PWM en el pic16f873a
« Respuesta #7 en: 31 de Octubre de 2006, 06:00:59 »
Pues mira es algo que no sabia  :shock: Siempre que hago algo con un pic lo hago bajo interrupciones puras y duras. Siempre que se puede claro. Me da la sensacion que le da mas estabilidad al sistema. Pero bueno supongo que es cuestion de gustos.

De todos modos y volviendo al hilo principal, no veo donde pasa el CCP1L al CCP2H en el fuente. Generas 1 o 2 señales? Pensaba que solo generabas una, pero despues de ver que necesitas ccp2H, cada vez entiendo menos.


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PWM en el pic16f873a
« Respuesta #8 en: 31 de Octubre de 2006, 08:32:46 »
Pues mira es algo que no sabia  :shock: Siempre que hago algo con un pic lo hago bajo interrupciones puras y duras. Siempre que se puede claro. Me da la sensacion que le da mas estabilidad al sistema. Pero bueno supongo que es cuestion de gustos.

En algunos casos es cuestión de gusto usar o no interrupciones, en otros es obligación usar interrupciones.

De todas formas, opino al revés que tú, para mi me parece que es más fácil no cometer errores (hacer un sistema más estable) cuando uno NO usa interrupciones que cuando las usa, al menos para el que recién comienza.


De todos modos y volviendo al hilo principal, no veo donde pasa el CCP1L al CCP2H en el fuente. Generas 1 o 2 señales? Pensaba que solo generabas una, pero despues de ver que necesitas ccp2H, cada vez entiendo menos.

Deimos yo no veo ningún CCP2H en el código fuente que subió mecatronicomarc
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: PWM en el pic16f873a
« Respuesta #9 en: 31 de Octubre de 2006, 14:11:21 »
Coincido con mauricio, si no sabes utilizar las interrupciones es mejor no meterse con ellas. Uno sabe qué hará cuando se dirije al vector de interrupciones porque uno las ha utilizado y, como él, cuando uno intentó usarlas creía que el programa no servía.

Todo por no saber que el programa "brinca" a la línea cuatro.

De todas maneras creo que mecatrónicomarc ya lo solucionó o se dió por vencido; la información que proporciona Deimos le ayudará en un futuro.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee


 

anything