Autor Tema: PWM EN PIC16F877A  (Leído 3431 veces)

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

Deimos

  • Visitante
PWM EN PIC16F877A
« en: 05 de Noviembre de 2006, 15:45:34 »
hola.. estoy programando un pic16f877a y tengo un par d dudas k m gustaria m resolvieran;

el tema es el siguiente.. he de programar dos señales pwm, que en el micro son rc0 y rc1,ya que solo tiene 2 señales PWM,  estas señales serán variables de 0 a 5v dependiendo de dos entradads anlogicas , tb de 0 a 5 v(0x00 0xFF) digamos rc0 responde a la variación (incremento) de An1 y rc1 responde a la variación(incremento) de An2 ;

estoy progrmando el micro y no obtengo respuesta en las salidas(el micro fuciona, tngo configurado el ADC, tb he echo varias pruebas con el mplab icd2)

lo programo en ccs , creo k no nos entendemos, ya que no m deja acceder a los registros internos

podrian pasarme algun ejemplo mas riguroso de las pwm y sus funiones , o una libreria 16f887a.h mas completa que la del ccs?

muchas gracias !!!

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: PWM EN PIC16F877A
« Respuesta #1 en: 05 de Noviembre de 2006, 22:17:08 »
coloca el codigo asi  lo vemos :)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: PWM EN PIC16F877A
« Respuesta #2 en: 06 de Noviembre de 2006, 00:04:12 »
hola amigo Deimos, no entiendo porq pones

estoy progrmando el micro y no obtengo respuesta en las salidas(el micro fuciona, tngo configurado el ADC, tb he echo varias pruebas con el mplab icd2)

he leido tu mensaje:
l tema es el siguiente.. he de programar dos señales pwm, que en el micro son rc0 y rc1,ya que solo tiene 2 señales PWM,  estas señales serán variables de 0 a 5v dependiendo de dos entradads anlogicas , tb de 0 a 5 v(0x00 0xFF) digamos rc0 responde a la variación (incremento) de An1 y rc1 responde a la variación(incremento) de An2 ;

esta claro para mi, y no entiendo por q falla, pues digamos q utilizas los 10 bits de resolucion del ADC del pic, entonces si pones 2.5V en la entrada analoga luego obtendras (en el caso de q las refrencias sean VCC y GND) 1FF , entonces este valor lo cargas directamente al registro del PWM q tambien es de 10 bits (en el caso de este chip 16F877A), entonces el duty cicle se modifica en la salida del PWM, y listo.

sugiero q publiques tu codigo, derpente te falte algun pequeño detalle  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Flugplatz

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 279
    • Mi canal de YouTube
Re: PWM EN PIC16F877A
« Respuesta #3 en: 06 de Noviembre de 2006, 06:44:01 »
¿no será que te falta alguna vocal?  :mrgreen:

Si es en CCS, usa el Wizard; es lo más fácil del mundo.

Solo te tienes que asegurar de que la frecuencia del PWM esté dentro de los márgenes que permite la frecuencia de funcionamiento del micro.

Después, asegúrate de que cuando asignas el valor del Duty Cycle, utilizas una variable o constante de tipo long para la resolución de 1024 pasos, o una de tipo integer, para una resolución de 256 pasos. Las funciones set_pwm1_duty(valor); y set_pwm2_duty(valor); están sobrecargadas, y por lo tanto, si no tienes claro que tipo de dato es el que le mandas a la función, te da problemas seguro. Yo te sugiero que cargues primero el valor en una variable, y después mandes esa variable como parámetro.

Por cierto, las salidas no son C0 y C1; son C1 y C2 ...

(Nota1: No conozco en profundidad C, pero creo que cuando una función se define dos veces con diferentes parámetros, se dice que está sobrecargada ¿no? ... además, el CCS lo he usado lo justo, y en su versión DEMO :mrgreen:)

Nota2: Esto es un foro, no un móvil, así que, si queréis que se os conteste, será mucho más fácil, escribiéndo, ya no digo, bién, pero sí, con las palabras completas.
« Última modificación: 06 de Noviembre de 2006, 08:22:50 por Flugplatz »
Mi canal de YouTube

Un saludo desde Madrid

Deimos

  • Visitante
Re: PWM EN PIC16F877A
« Respuesta #4 en: 07 de Noviembre de 2006, 16:37:11 »
Querid@s amigos:

Ha habido un error de lo más curioso. Estoy ayudando a un compañero a realizar su proyecto de final de carrera y le recomendé este foro. Como no se daba de alta y no lo consultaba, un dia en su casa entré con mi nick y le estuve enseñando el foro, que era y como se utilizaba. Para facilitarle el trabajo le puse la dirección en los favoritos, pero, con mi nick jajaja claro, lo agregué a favoritos cuando estaba navegando con mi nick, y el compañero en cuestión, cuando escribió el mensaje en el foro, utilizó mi nick por error, o descuido, o como lo querais llamar.

En fin, que todo esto que le respondiais no es para mí sino para el jajajaja cosas que pasan. De akí en adelante ya entrará con su nick, ya que ya está avisao jajajaja.

El problema básicamente es que está programando en CCS y yo de CCS no tengo ni idea, me quedé en el asm y el C de toda la vida, las nuevas tecnologías se me han echado encima jajajajaja. De lo poco que he deducido del CCS es que él solito te monta las cabeceras de programas, pero hay bits que o no hemos sabido tocarlos, o simplemente el CCS no deja tocar todos los bits de configuración.

En el foro hay una sección de ejemplillos, que ahora mismo no se bien bien donde cae, que salen samples de pwm, A/D, I2C y más con CCS, para los que no lo sabian.

Bueno, gracias a tod@s por todo

Desconectado DarkVect

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 302
Re: PWM EN PIC16F877A
« Respuesta #5 en: 07 de Noviembre de 2006, 17:23:07 »
Si sabes C y te bajas el Manual de CCS para ver algunas funciones especiales para el manejo de puertos, lecturas, escrituras, etc... lo tienes!!

Yo recién empecé hace un par de meses y estaba como tú, pero poco a poco se le coge el truco.


 

anything