Autor Tema: PWM en pic 16f877A  (Leído 8179 veces)

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

Desconectado aprada

  • PIC10
  • *
  • Mensajes: 9
PWM en pic 16f877A
« en: 17 de Mayo de 2007, 14:32:03 »
para comenzar tengo u nprograma que no me hace nada de nada .... y he leido varios ejemplos y los que realizan los ejemplos dicen que funcionana muy bn aqui les va mi programa si peude ayudarme :

#include <16F877A.h>
#device *=16
#fuses HS,NOWDT,NOPROTECT,NOLVP
//#priority rda,ad,rtcc,timer1,timer2
#use delay(clock=20000000)
//#use fast_io(a)
//#use fast_io(b)

void main()
{
   set_tris_c(0X00);
   setup_ccp1(CCP_PWM);                          // Configura CCP1 como PWM
   set_pwm1_duty(0);   // Frecuencia 0 de partida
   while(1)
   {
   set_pwm1_duty(16);
   setup_timer_2(T2_DIV_BY_16,32,1);      // f=10kHz (T=50us)
   }
}

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: PWM en pic 16f877A
« Respuesta #1 en: 17 de Mayo de 2007, 14:35:23 »
hola andres jejeje que significa esto: #device *=16    :-)
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

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

Desconectado aprada

  • PIC10
  • *
  • Mensajes: 9
Re: PWM en pic 16f877A
« Respuesta #2 en: 17 de Mayo de 2007, 14:37:49 »
como la porgaramacio nes en el CCS es para epecificar la familia 16 de pic :-/ :-/

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: PWM en pic 16f877A
« Respuesta #3 en: 17 de Mayo de 2007, 14:52:44 »
pero si ya estas colocando el nombre del pic, no es necesario, te sale error si lo sacas del codigo?
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

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

Desconectado aprada

  • PIC10
  • *
  • Mensajes: 9
Re: PWM en pic 16f877A
« Respuesta #4 en: 17 de Mayo de 2007, 14:54:05 »
bueno eso algo sin importancia lo que nesecito es ayuda con el PWM ..... help .. lo mas rapido profavor

Desconectado aprada

  • PIC10
  • *
  • Mensajes: 9
Re: PWM en pic 16f877A
« Respuesta #5 en: 17 de Mayo de 2007, 15:02:52 »
encontre el error del codigo .... aqui le pongo el que funcion bn sacando un senal de 18.9KHz .... pues espero una senal  de 20K pero esta esta bn ... para mi aplicacion
#include <16F877A.h>
//#device *=16
#fuses HS,NOWDT,NOPROTECT,NOLVP
//#priority rda,ad,rtcc,timer1,timer2
#use delay(clock=20000000)
//#use fast_io(a)
//#use fast_io(b)


void main()
{
   set_tris_c(0X00);
   setup_ccp1(CCP_PWM);                          // Configura CCP1 como PWM
   set_pwm1_duty(0);   // Frecuencia 0 de partida
   setup_timer_2(T2_DIV_BY_16,16,1);
   while(1)
   {
   set_pwm1_duty(8);
        // f=10kHz (T=50us)
   }
}

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: PWM en pic 16f877A
« Respuesta #6 en: 17 de Mayo de 2007, 17:56:04 »
 :mrgreen: cual era el error? jejeje
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

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

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: PWM en pic 16f877A
« Respuesta #7 en: 18 de Mayo de 2007, 13:59:47 »
como la porgaramacio nes en el CCS es para epecificar la familia 16 de pic :-/ :-/

concretamente sirve para seleccionar el ancho del puntero con el que trabajará el micro en cuestión. (pág 81 ccs_c_manual.pdf)

Esto no hace colocarlo, ya el ccs lo activa por defecto de acuerdo a la familia.

y es cierto no tiene que ver con el problema de aprada
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado aprada

  • PIC10
  • *
  • Mensajes: 9
Re: PWM en pic 16f877A
« Respuesta #8 en: 22 de Mayo de 2007, 15:39:29 »
el en el codigo era que estaba haciendo setup del timer 2 en while 1 entonces eso no dejaba que el pwm funcionara bn .... lo saque del while 1 y funciono muy bn
void main()
{
   set_tris_c(0X00);
   setup_ccp1(CCP_PWM);                          // Configura CCP1 como PWM
   set_pwm1_duty(0);   // Frecuencia 0 de partida
   setup_timer_2(T2_DIV_BY_16,16,1); // este es el stup que estaba ahciendo dentro del while !!
   while(1)
   {
   set_pwm1_duty(8);
        // f=10kHz (T=50us)
   }
}


 

anything