Autor Tema: Problema con CSS C  (Leído 1532 veces)

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

Desconectado nexus148

  • PIC10
  • *
  • Mensajes: 17
Problema con CSS C
« en: 26 de Noviembre de 2009, 14:10:39 »
Hola

Tengo un problema con un a entrada, que no consigo resolver.
El programa es este:
Código: [Seleccionar]
#include <16f818.h>
#fuses INTRC_IO,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)

#define LED_Verde PIN_B2
#define Detector PIN_B4

void configuracion(void)
{
set_tris_b(0b00010001);
}


void main(void)  
{  
   configuracion();

do {
if(input(Detector))
output_low(LED_Verde);
else
output_high(LED_Verde);
}while(TRUE);
}
El programa simplemente enciende un led, cuando tiene la entrada sobre el rb4.

Si yo dejo el programa como está, activo la entrada y cuando la desactivo el led se queda parpadeando.
Si cambio la configuracion del puerto B por esta: set_tris_b(0b00010000), quitando como entrada el RB0, ya funciona bien.

Resumen:
set_tris_b(0b00010001);    Led parpadea
set_tris_b(0b00010000);    Funciona OK

Un saludo
« Última modificación: 27 de Noviembre de 2009, 03:41:18 por nexus148 »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problema con CSS C
« Respuesta #1 en: 26 de Noviembre de 2009, 14:15:51 »
Hola, ¿pusiste una resistencia pulldown en RB4? Eso aseguraría que cuando quitas los 5V de B4 se tengan 0V en B4.

Otra cosa...

Código: [Seleccionar]
      if(input(Detector))
         output_low(LED_Verde);
      else
         output_high(LED_Verde);

Si Detector tiene 5V entonces se apaga LedVerde. Si Detector tiene 0V entonces se prende LedVerde. ¿Conectaste el led invertido y a 5V en vez de tierra?

Desconectado nexus148

  • PIC10
  • *
  • Mensajes: 17
Re: Problema con CSS C
« Respuesta #2 en: 27 de Noviembre de 2009, 03:40:21 »
Hola he probado de 3 formas:

Código: [Seleccionar]
port_b_pullups(FALSE);
port_b_pullups(0b00010001);
port_b_pullups(0b00010000);

y sigue igual.

Por el tema del led, desde la salida tengo el anodo del led, desde el catodo tengo una R de 330 y luego a tierra (vss).

Un saludo

Desconectado nexus148

  • PIC10
  • *
  • Mensajes: 17
Re: Problema con CSS C
« Respuesta #3 en: 27 de Noviembre de 2009, 04:33:00 »
Acabo de encontrar la solucion, sin sabar el motivo.
He probado varias cosas y al final simplemente añadiendo la configuracion del puerto A, ya funciona.

Código: [Seleccionar]
void configuracion(void)
{
set_tris_a(0b00000001);
set_tris_b(0b00010001);
port_b_pullups(0b00010001);
}

Lo que está claro que desde ahora, hay que configurar todos los puertos, se usen o no.


Un saludo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problema con CSS C
« Respuesta #4 en: 27 de Noviembre de 2009, 12:59:30 »
Ermm... me refería a una pulldown externa jeje

Bueno, no está muy claro tu problema pero bueno, quedó resuelto.  :huh:


 

anything