Autor Tema: Problema al Implementar Pwm a Rs232 Pi16f877  (Leído 5331 veces)

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

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Problema al Implementar Pwm a Rs232 Pi16f877
« en: 20 de Septiembre de 2009, 21:32:06 »
Como ya saben hace unos dias mostre un codigo donde hago comunicacion con el rs232 mas que ahora quise integrar Pwm mas que no me funciona alguien podria decirme donde tengo el Error, tan grave es que ni la Lcd inicializa

Código: C
  1. #include <16F877A.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock=4000000)
  4. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
  5. #include <LCD.C>
  6. #BYTE TRISA=0X85
  7. #BYTE PORTA=0X05
  8.  
  9. int16 lectura;
  10. #int_RDA
  11. RDA_isr()
  12. {
  13.  lectura=GETC();
  14. }
  15.  
  16. void main()
  17.    {
  18.     lcd_init();
  19.     setup_ccp2(CCP_PWM);
  20.     setup_timer_2(T2_DIV_BY_4, 255, 1);
  21.     bit_clear(TRISA,0);
  22.     enable_interrupts(INT_RDA);
  23.     enable_interrupts(GLOBAL);
  24.  
  25.       do
  26.       {
  27.       //lectura=getc();
  28.       if(lectura==0x30){
  29.          lcd_gotoxy(1,1);
  30.          printf(lcd_putc,"Rx esperando        ");  
  31.          lcd_gotoxy(1,2);
  32.          printf(lcd_putc,"                    ");  
  33.          set_pwm2_duty(0);}
  34.       else if (lectura==0x31){
  35.          lcd_gotoxy(1,1);
  36.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  37.          lcd_gotoxy(1,2);
  38.          printf(lcd_putc,"PUERTA ABIERTA       ");  
  39.          set_pwm2_duty(50);}
  40.       else if (lectura==0x32){
  41.          lcd_gotoxy(1,1);
  42.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  43.          lcd_gotoxy(1,2);
  44.          printf(lcd_putc,"FALLA FUSIBLE        ");  
  45.          set_pwm2_duty(100);}
  46.       else if (lectura==0x33){
  47.          lcd_gotoxy(1,1);
  48.          printf(lcd_putc,"Rx Recibiendo AL      ");  
  49.          lcd_gotoxy(1,2);
  50.          printf(lcd_putc,"MAQ. EN OPERACION     ");
  51.          set_pwm2_duty(150);}        
  52.       else if (lectura==0x34){
  53.          lcd_gotoxy(1,1);
  54.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  55.          lcd_gotoxy(1,2);
  56.          printf(lcd_putc,"MAQ. BLOQUEADA       ");  
  57.          set_pwm2_duty(200);}
  58.       else if (lectura==0x35){
  59.          lcd_gotoxy(1,1);
  60.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  61.          lcd_gotoxy(1,2);
  62.          printf(lcd_putc,"FALLA DE C.F.E.      ");  
  63.          set_pwm2_duty(255);}
  64.              }while(true);
  65. }

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #1 en: 20 de Septiembre de 2009, 21:42:42 »
Veo que usas el standard_io(); y segun entiendo este te configura autimaticamente los pines cuando haces referencia a alguno.

Lo que  no se es si setup_cpp() configura el pin como salida.

Puede sprobar poniendo a 0 el pin correspondiente a la salida del PWM.

Si CCP/PWM es B0

Antes de poner setup_ccp(ccp_pwm)

indiques

output_low(pin_b0);

para que lo ponga como salida porque usas el standard_io()

o hacerlo directo set_tris

« Última modificación: 20 de Septiembre de 2009, 21:51:07 por AKENAFAB »

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #2 en: 20 de Septiembre de 2009, 21:51:38 »
Mas que no uso el standard_Io

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #3 en: 20 de Septiembre de 2009, 21:52:45 »
Si no pones la directiva, se usa por default
El papel lo aguanta todo

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #4 en: 20 de Septiembre de 2009, 21:57:49 »
y el detalle es que no entra ni al If, y me manda ya directamente el Pwm a 255 segun me muestra el Osciloscopio


Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #5 en: 20 de Septiembre de 2009, 22:21:12 »
sube los archivos de la simulación y el código, por favor:

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #6 en: 20 de Septiembre de 2009, 22:28:38 »
Aqui esta

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #7 en: 20 de Septiembre de 2009, 22:31:50 »
no lo puedo abrir porque no tengo esa versión de isis. Si puedes guardalo como una versión anterior

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #8 en: 20 de Septiembre de 2009, 22:47:43 »
Listo en vercion 7

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #9 en: 20 de Septiembre de 2009, 23:17:55 »
No se para que colocaste el diodo y las resistencias a Ra0. El problema es que al configurar ra0 como salida, este pin se pone a cero y el pic se resetea constantemente. Prueba quitando esta parte y verás que ahí si funciona o configura el pin RA0 como entrada.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #10 en: 20 de Septiembre de 2009, 23:21:00 »
Ya lo intente y nada y en si ese es el Master Clear mas que creo que te pase el diagrama que le puse un puentesito de mas, sin conectar nada al Pouerto A aun asi no me manda y no me hace nada

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #11 en: 20 de Septiembre de 2009, 23:28:40 »
en las opciones del micro en "processor clock frequency" coloca 4Mhz que es con la frecuencia que estás trabajando. no te olvides de colocar el mclr a positivo. sino te funciona te mando como lo estoy simulando que si funciona

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #12 en: 20 de Septiembre de 2009, 23:36:43 »
ya pero aun sigue sin mandarme nada el Pwm solo me envia un tren de pulsos al inicio y despues nada



y eso que solo estoy probando con dos opciones de mi if

Código: C
  1. #include <16F877A.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock=4000000)
  4. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
  5. #include <LCD.C>
  6. #BYTE TRISA=0X85
  7. #BYTE PORTA=0X05
  8.  
  9. int16 lectura;
  10. #int_RDA
  11. RDA_isr()
  12. {
  13.  lectura=GETC();
  14. }
  15.  
  16. void main()
  17.    {
  18.     bit_clear(TRISA,0);
  19.     enable_interrupts(INT_RDA);
  20.     enable_interrupts(GLOBAL);
  21.     setup_ccp2(CCP_PWM);
  22.     setup_timer_2(T2_DIV_BY_4, 255, 1);
  23.     lcd_init();
  24.       do
  25.       {
  26.       //lectura=getc();
  27.       if(lectura==0x00){
  28.          lcd_gotoxy(1,1);
  29.          printf(lcd_putc,"Rx esperando        ");  
  30.          lcd_gotoxy(1,2);
  31.          printf(lcd_putc,"                    ");  
  32.          output_b(lectura);
  33.          set_pwm2_duty(0);}
  34.       else if (lectura<=0x01){
  35.          lcd_gotoxy(1,1);
  36.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  37.          lcd_gotoxy(1,2);
  38.          printf(lcd_putc,"PUERTA ABIERTA       ");  
  39.          output_b(lectura);
  40.          set_pwm2_duty(250);}
  41.       else if (lectura<=0x03){
  42.          lcd_gotoxy(1,1);
  43.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  44.          lcd_gotoxy(1,2);
  45.          printf(lcd_putc,"FALLA FUSIBLE        ");  
  46.          set_pwm2_duty(100);
  47.          output_b(lectura);}
  48.       else if (lectura<=0x07){
  49.          lcd_gotoxy(1,1);
  50.          printf(lcd_putc,"Rx Recibiendo AL      ");  
  51.          lcd_gotoxy(1,2);
  52.          printf(lcd_putc,"MAQ. EN OPERACION     ");  
  53.          set_pwm2_duty(150);
  54.          output_b(lectura);}        
  55.       else if (lectura<=0x0F){
  56.          lcd_gotoxy(1,1);
  57.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  58.          lcd_gotoxy(1,2);
  59.          printf(lcd_putc,"MAQ. BLOQUEADA       ");  
  60.          output_b(lectura);}
  61.       else if (lectura<=0x1F){
  62.          lcd_gotoxy(1,1);
  63.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  64.          lcd_gotoxy(1,2);
  65.          printf(lcd_putc,"FALLA DE C.F.E.      ");  
  66.          output_b(lectura);}
  67.       else if (lectura<=0x3F){
  68.          lcd_gotoxy(1,1);
  69.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  70.          lcd_gotoxy(1,2);
  71.          printf(lcd_putc,"FALLA RECTIFICADOR   ");  
  72.          output_b(lectura);}        
  73.       else if (lectura<=0x7F){
  74.          lcd_gotoxy(1,1);
  75.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  76.          lcd_gotoxy(1,2);
  77.          printf(lcd_putc,"FALLA + RECTIFICADOR ");  
  78.          output_b(lectura);}
  79.       else if (lectura<=0xFF){
  80.          lcd_gotoxy(1,1);
  81.          printf(lcd_putc,"Rx Recibiendo AL     ");  
  82.          lcd_gotoxy(1,2);
  83.          printf(lcd_putc,"ALTA TEMPERATURA     ");  
  84.          output_b(lectura);}
  85.              }while(true);
  86. }

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #13 en: 20 de Septiembre de 2009, 23:42:32 »
debes tener en cuenta que cuando lees el caracter por el rs232 lo guardas en una variable y una vez que lo procesas, es decir entras al if, lo debes borrar poniéndole un valor que no estés usando para tus comandos, sino va a entrar al if en cada vuelta que da una vuelta el ciclo do-while

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Implementar Pwm a Rs232 Pi16f877
« Respuesta #14 en: 20 de Septiembre de 2009, 23:48:18 »
Pues la verdad no hayo como lograr que fucione esta comunicacion y por case ya lo intente en el codigo y tambien no me da resultados