Autor Tema: problema pic16f877 ayuda porfasssss  (Leído 2659 veces)

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

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
problema pic16f877 ayuda porfasssss
« en: 10 de Febrero de 2011, 02:37:26 »
buenas gente.. la pregunta es la siguiente...


estoy creando un proyecto en css con un pic16f877

en donde en la funciona main esta todo definido de la siguiente manera

  port_b_pullups(TRUE);
   setup_adc_ports(NO_ANALOGS);                              //Esto me desactiva los adc / para pdoer usarlo como IO digital
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   setup_timer_2(T2_DISABLED,0,1);
   enable_interrupts(INT_RDA);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(INT_TIMER1);   
   enable_interrupts(GLOBAL);



el problema que tengo con este pic en realidad es la pata 5 del puerto a

al poner por ejemplo output_low(pin_a5) no lo apaga
y al poner output_high(pin_a5) si lo enciende..

(tengo conectado un led por eso digo apaga o enciende..)


mientras que todo el puerto a si obedece...


en donde puede estar mi error..???

hay que hacer alguna configuracion de fuses.. porque justamente estoy leyendo que aqui es donde se conecta el SPI o algo asi.. q no me interesa usar..

alguien me puede dar una mano con esta duda existencial????


saludos y se agradece como siempre..

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: problema pic16f877 ayuda porfasssss
« Respuesta #1 en: 10 de Febrero de 2011, 14:41:33 »
Qué tal calopsia!

Tal vez lo que te falte sea configurar el puerto como salida.
En el main, coloca:
Código: [Seleccionar]
set_tris_A(0x00);
Te quedaría algo así:
Código: C
  1. port_b_pullups(TRUE);
  2.    setup_adc_ports(NO_ANALOGS);                              //Esto me desactiva los adc / para pdoer usarlo como IO digital
  3.    setup_adc(ADC_OFF);
  4.    set_tris_A(0x00); // Configura todos los pines del Port A como salidas.
  5.    setup_psp(PSP_DISABLED);
  6.    setup_spi(SPI_SS_DISABLED);
  7.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_8);
  8.    setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
  9.    setup_timer_2(T2_DISABLED,0,1);
  10.    enable_interrupts(INT_RDA);
  11.    enable_interrupts(INT_TIMER0);
  12.    enable_interrupts(INT_TIMER1);  
  13.    enable_interrupts(GLOBAL);

Añade y eso y vuelve a probar a ver qué tal... ojalá funcione!  :lol:
Saludos, nos leemos!  :mrgreen:


"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: problema pic16f877 ayuda porfasssss
« Respuesta #2 en: 10 de Febrero de 2011, 16:18:45 »
si ya esta hecho de esa manera.. nada mas q lo tenia mas abajo declarado al tris_a

incluso.. al parecer es la pata de spi (SS/pin_a5) no logro encontrar informacion

pero he probado tmb poniendo setup_spi(FALSE);

y no hay caso...

He probado configurando el registro ADCON1 en CSS

de la siguiente forma

#byte ADCON1 = 0x9F

ADCON1 = 0x06 y 0x07 sigue sin responder el led del pin_a5 una vez q lo enciendo no lo puedo volver a apagar..

hay otro registro q esta en el mismo banco supuestamente y segun lei.. que se llama CMCON pero no se como conigurarlo y no encuentro mucha info...

agradezco si sabes algo de esto..


saludos y gracias de nuevo

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: problema pic16f877 ayuda porfasssss
« Respuesta #3 en: 11 de Febrero de 2011, 00:14:19 »
agrego que cambiando el valor de adcon1 = 7 y por ejemplo 8,,

con 7 supuestamente lei en foros y anda.. a mi no me anda.. por ahi no es 7... pero poniendole 8 el puerto a se vuelve loco.. no entiendo esto la verdad.. no se setear eso..

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: problema pic16f877 ayuda porfasssss
« Respuesta #4 en: 11 de Febrero de 2011, 08:47:51 »
El set_tris debe ir antes que el output_low(pin_a5) ... ¿lo tienes asi?

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: problema pic16f877 ayuda porfasssss
« Respuesta #5 en: 11 de Febrero de 2011, 16:08:35 »
Qué tal calopsia!

Bueno fíjate que justo estoy trabajando en un proyecto con el 16f877 y pues en un momentico he probado lo que dices para encender y apagar un led con el RA5, y funciona de maravilla...

Aquí te dejo el programa que cargué en el micro y funcionó -en físico, 100% -.
Usé un PIC16F877 con cristal de 20MHz (es el que uso para todas mis aplicaciones, así trabaja el micro a full velocidad).
El circuito pues es el clásico, en el Pin 7 -RA5- una resistencia de 100ohms en serie con un led a tierra.
El compilador es CCS 4.118.

Código: C
  1. #include <16f877.h>
  2. #fuses HS,NOWDT,NOPROTECT,NOLVP,PUT,NOBROWNOUT
  3. #use delay (CLOCK=20000000)
  4. #use fast_io(A)
  5.  
  6. void main()
  7. {
  8.         setup_adc_ports(NO_ANALOGS);
  9.         setup_adc(ADC_OFF);
  10.         set_tris_A(0x00);
  11.         while(TRUE)
  12.         {
  13.                 output_high(PIN_A5);
  14.                 delay_ms(500);
  15.                 output_low(PIN_A5);
  16.                 delay_ms(500);
  17.         }
  18. }

Prueba ese programita a ver si te funciona, te debe funcionar  :lol: ... por lo menos para descartar que no sea el micro el que esté echando broma...  :shock:
Si este programa -tal cual como te lo coloqué- te funciona, el problema entonces debe estar en alguna parte de la programación...
Te dejo el .hex por si acaso (no hagas caso del nombre "envio_serial", es que sobreescribí uno que tenía para eso jeje).

En fin, coméntanos por acá cómo te fue...
Saludos cordiales, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: problema pic16f877 ayuda porfasssss
« Respuesta #6 en: 19 de Febrero de 2011, 21:09:22 »
Hola.. perdon por la demora.... probe tu codigo..  y sigue sin funcionar.. he lleago a la conclusion de q el problema esta en el pic.. ya que en otro pic si funciona.. ahora.. no lo conecte mal.. ni nada por el estilo.. pero vino fallado al parecer..

si a alguien le paso.. tuvo la misma mala suerte q yo.. y si a nadie le paso.. bueno sepa q esto pasa..

saludos y muchas gracias..

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: problema pic16f877 ayuda porfasssss
« Respuesta #7 en: 23 de Febrero de 2011, 11:25:14 »
Qué tal calopsia! Qué lástima lo que pasó con tu micro...

A veces puede ser porq no hemos tenido cuidado y hemos hecho algo mal y le hemos quemado algún pin al pobre... o el protoboard nos a jugado una mala pasada... a mí me pasó una vez que tuve la "puntería" de que el protoboard tenía un corto entre dos líneas y justo ahí coloqué los pines que correspondían a Vcc y GND... te podrás imaginar que le eché una quemada al pobre PIC...  :?

Y pues otras veces es por defecto de fábrica -esto es más raro-, pero en efecto... pasa.  :(

Bueno qué bien que lograste detectar el problema y solucionarlo.  :lol:
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web


 

anything