Autor Tema: Activar salida  (Leído 2783 veces)

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

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Activar salida
« en: 16 de Octubre de 2004, 15:17:00 »
Ala otra dudilla tonta pa vosotros... un mundo pa mi

tengo hecha esta asignacion:
Codigo:

#byte pb       =0xF81
#bit extractor    =pb.3      // RB3, pin24
#bit intractor    =pb.4      // RB4, pin25
#bit resistencia   =pb.5      // RB5, pin26
#bit nebulizador    =pb.6      // RB6, pin27


Bien, ahora intento activar esas salidas despues de unas comprobaciones de un if, os pongo esta a modo de ejemplo:
Codigo:

else if (temp_actual >= tmin && temp_actual <= tmax && humedad_actual < hmin) {lcd_gotoxy(1,4),printf(lcd_putc,"Caso 4";resistencia=0;intractor=0;extractor=0;nebulizador=1;}


Bien he comprobado que el if lo hace bien, ahora bien, no me activa la salida, o la desactiva, según sea un 0 o un 1, he declarado el puerto b como fast_io .....  #use fast_io(B)
, no se que falla...

He intentado hacerlo de otra forma...
output_bit(resistencia,0);
esto me da fallo en la compilación, por lo que mirando algun ejemplo lo he escrito "bien":
output_bit(PIN_B5,0);
de esta forma no lo he simulado ya que no me interesa llenar el codigo entero de PIN_B5 y demas, por lo que "y creía que esto funcionaria", he declarado un #define
#define resistencia = PIN_B5
bien esto tb da fallo de compilacion y por supuesto no funciona :P

De estas dos formas cual esa la correcta?? en que fallo??

Graciassss!!

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Activar salida
« Respuesta #1 en: 17 de Octubre de 2004, 04:16:00 »
No, el printf no está bien. Prueba así:

else if (temp_actual >= tmin && temp_actual <= tmax && humedad_actual < hmin)
{
lcd_gotoxy(1,1);
printf(lcd_putc,"Nº4: res=0 int=0");
lcd_gotoxy(6,2);
printf(lcd_putc,"ext=0 neb=1");
}

Lo anterior es,  si lo único que deseas es visualizar en pantalla caracteres. Si lo que deseas es visualizar valores de variables tendrás que usar formatos (%).

Respecto a la otra duda, puedes hacerlo con output_bit(resistencia,0) y con el #define resistencia PIN_B5 (sobraba el =)

Un saludo

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Activar salida
« Respuesta #2 en: 17 de Octubre de 2004, 13:17:00 »
jejje el problema del printf es la carita que ha salido guiñando el ojo, en realidad seria así:

else if (temp_actual >= tmin && temp_actual <= tmax && humedad_actual < hmin) {lcd_gotoxy(1,4);printf(lcd_putc,"Caso 4");resistencia=0;intractor=0;extractor=0;nebulizador=1;}

es decir, no quiero que me diga si resistencia está a 0 o a 1, sino que me la active, puesto que previamente le he indicado la direccion del puerto:
#byte pb =0xF81
#bit resistencia =pb.5

per bueno, si de esta manera no se usa lo haré tal y como me has dicho con el define........ sin el = :P

gracias tiu ;)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Activar salida
« Respuesta #3 en: 17 de Octubre de 2004, 23:39:00 »
Con la 1ª forma también te debería de ir.

Prueba así:

#byte pb =0xF81          ---------------> Supongo que esto estará bien, para el PIC18 que tengas
#bit extractor =0xF81.3
etc

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Activar salida
« Respuesta #4 en: 18 de Octubre de 2004, 17:56:00 »
sip está bien configurado de hecho lo uso para controlar 3 pulsadores que van a ese mismo puerto y va perfecto, nada, se queda de la forma que me dijiste que va perfecto!

Salu2!


 

anything