Autor Tema: inicio en lcd  (Leído 3907 veces)

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

Desconectado ncoliv

  • PIC16
  • ***
  • Mensajes: 130
Re: inicio en lcd
« Respuesta #15 en: 22 de Julio de 2008, 21:16:10 »
1° No tuve en cuenta la conección del contraste. 2°Habia una sentencia que me limpiaba el display al final del programa por eso es que no apreciaba ninguna leyenda.
evidentemente los pines son standares. por lo menos en los de 2X16.
Si duda que se aprende cuando las cosas no salen en la primera conexíón........

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: inicio en lcd
« Respuesta #16 en: 23 de Julio de 2008, 11:25:57 »
errores que uno casi siempre comente, pero de eso siempre se aprende, esa es la mejor parte

ahora sobre la compatibilidad, los lcd's hitachi hd44780 me animo a decir que siempre tienen compatibilidad de pines, pero otros lcd's con otro controlador quizá difieran en pines, siempre hay qeu tener en ceunta ese detalle
.

Desconectado ncoliv

  • PIC16
  • ***
  • Mensajes: 130
Re: inicio en lcd
« Respuesta #17 en: 24 de Julio de 2008, 14:26:53 »
Respecto a la configuración de una variable a la que voy a llamar pulsos (número entero ):
- Para que se pueda incrementar mediante pulsos externos  recibidos hasta 255 la declaré como: int8  Pulsos  y visualizarla con Printf como: Pulsos=%u.
Como necesito contar más de 255 pulsos declaro:
long  Pulsos y la visualizo mediante Printf como : Pulsos=%lu
Debería mediante esta configuración contar hasta 65536 porque a la variable la defino como de dos bytes pero el conteo es aproximadamente hasta un orden de 1700.
¿Que podría estar sucediendo?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: inicio en lcd
« Respuesta #18 en: 24 de Julio de 2008, 16:52:18 »
Hola.

A la hora de definir la variable, si quieres que coja todo el rango debes definirla como unsigned int16 y listo.

Saludos
El papel lo aguanta todo

Desconectado ncoliv

  • PIC16
  • ***
  • Mensajes: 130
Re: inicio en lcd
« Respuesta #19 en: 28 de Julio de 2008, 16:14:02 »
Solucionado el tema de la variable tal cual lo dijieron uds. Muchas gracias
Estoy realizando un programa que presente el incremento de una variable mediante un lcd cada vez que por uno de los pines del puerto b del pic se presente un  estado alto tensiòn. Cuando lo compilo me arroja una serie de errores que no logro corregir. por favor dejo el programa y podrìan decirme los errores que estoy cometiendo y corregirlos.
#include <16f877a.h>  //PIC utilizado         
#fuses XT,NOWDT,NOPROTECT,PUT  //Configuramos los fuses
#use delay (clock=4000000)     //Oscilador a 4Mhz
#use fast_io(b)   //Optimizamos E/S del PORTB
#include <lcd.c>
long int pulsos=0

//------Programa principal-----
void main(void)
{set_tris_b(0xfe);//Pin RB1 del puerto B como salida, el resto como entrada
 disable_interrupts(global);// Toda las interrupciones desactivadas
do{
   if(input(Pin_b1));
puslos++
lcd_init();
printf(lcd_putc,"pulsos= %lu"
}while(true);
}

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: inicio en lcd
« Respuesta #20 en: 28 de Julio de 2008, 19:17:23 »
te corrijo algunos errores que he visto:

#include <16f877a.h>  //PIC utilizado         
#fuses XT,NOWDT,NOPROTECT,PUT  //Configuramos los fuses
#use delay (clock=4000000)            //Oscilador a 4Mhz
#use fast_io(b)                             //Optimizamos E/S del PORTB
#include <lcd.c>
long int pulsos=0;
// acá quizá sea mejor declararlo como int16 o int32, para una mejor comprensión, pero long int tb vale

//------Programa principal-----
void main(void){
   set_tris_b(0xfe);              //Pin RB1 del puerto B como salida, el resto como entrada
   lcd_init();                       // este mejor al principio y despues te olvidas
   disable_interrupts(global);  // Toda las interrupciones desactivadas
   do{
      if(input(Pin_b1)){  //sin punto y coma
      //agrega un retardo antirrebote
         do{
            delay_ms(20);
         }while(input(pin_b1));

         pulsos++;
      printf(lcd_putc,"pulsos= %lu",pulsos);
   }
   }while(true);
}
.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: inicio en lcd
« Respuesta #21 en: 28 de Julio de 2008, 20:06:22 »
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: inicio en lcd
« Respuesta #22 en: 29 de Julio de 2008, 13:21:08 »
ni me había fijado ese otro post, que mal! :D :D

hay que tratar de colocar solamente una vez ncoliv, no podemos meter y meter cosas repetidas en el foro, ten más cuidado la proxima vez.

un saludo.
.