TODOPIC

Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: jhozate en 27 de Junio de 2009, 20:00:54

Título: Problema con simulacion de teclado (solucionado)
Publicado por: jhozate en 27 de Junio de 2009, 20:00:54
hola, pss me encuentro con un problema, simulando en el proteus q cada vez me decepciona mas, es un modulo de entramiento q ya esta probado, pero como es de un curso  que estoy haciendo pss en mi casa me toca a puro proteus. Para ensayar el funcionamiento del teclado se hizo un programa q mostrara en el lcd la tecla pulsada, todo bien en el modulo real, pero ahora vengo a simular en proteus y resulta que no puedo empezar a pulsar las teclas del 7 al 9 y a veces puedo pulsar solo del  1 al 4.

les adjunto el modulo en proteus, la rutina para ensayar el teclado,lcd para este caso.

algo que me ocurrio en la implementacion real y q no entendí  es q por qué el programa solo funciona si le pongo a mostrar en el lcd la tecla pulsada solo si es distinta de cero y si le quito  esa linea de codigo no funciona.

Todo esto porq quiero anticiparme a un ejercicio de una clave de acceso, entonces quisiera poner almenos funcionar esto en proteus.

pongo el codigo
Código: CSS
  1. #include "C:\Archivos de programa\PICC\Projects\PRUEBA_CONTROL_ACCESO.h"
  2. #INCLUDE "LCD.C"
  3. #include <bootloader.h>
  4. #define use_portb_lcd TRUE
  5. #INCLUDE "KBY.C"
  6.  
  7. CHAR CARACTER;
  8. void main()
  9. {
  10.  
  11.    setup_adc_ports(NO_ANALOGS|VSS_VDD);
  12.    setup_adc(ADC_OFF);
  13.    setup_spi(SPI_SS_DISABLED);
  14.    setup_wdt(WDT_OFF);
  15.    setup_timer_0(RTCC_INTERNAL);
  16.    setup_timer_1(T1_DISABLED);
  17.    setup_timer_2(T2_DISABLED,0,1);
  18.    setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
  19.    setup_comparator(NC_NC_NC_NC);
  20.    setup_vref(FALSE);
  21.    setup_oscillator(OSC_4MHZ|OSC_TIMER1|OSC_31250|OSC_PLL_OFF);
  22.    port_b_pullups(TRUE);
  23.    
  24.  
  25.    LCD_INIT();
  26.  
  27.      FOR(;;)
  28.      {
  29.      CARACTER=KBY_GETC();
  30.      IF(CARACTER!=0)
  31.      LCD_PUTC(CARACTER);
  32.  
  33.      }
  34. }
Título: Re: Problema con simulacion de teclado
Publicado por: Suky en 27 de Junio de 2009, 21:57:45
Colocale las resistencias pull-up externas. Siempre tuve problemas en la simulación de las pull-up internas del PIC.
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 27 de Junio de 2009, 22:12:47
al pareceer mejora, pero fijate q el estado de los pines toma un estado desconocido para mi , se pone en color gris y ya no muestra los datos en el lcd
Título: Re: Problema con simulacion de teclado
Publicado por: Suky en 27 de Junio de 2009, 22:28:19
al pareceer mejora, pero fijate q el estado de los pines toma un estado desconocido para mi , se pone en color gris y ya no muestra los datos en el lcd
Abría que ver la librería KBY.C, capaz tenga algún error en la configuración del tris del puerto.  :?
Título: Re: Problema con simulacion de teclado
Publicado por: fjalex en 28 de Junio de 2009, 07:50:59
Si no me equivoco has compilado el programa con css y no has puesto el cof ni el hex, con lo que no puedo simularlo. Pero te sugiero que busques en los ejemplos de proteus en la siguiente carpeta:

samples\VSM for PIC18\C18 calculator.

Ahí puedes encontrar un ejemplo de uso del teclado y ver cómo funciona.

Espero que te ayude.

Un saludo.
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 28 de Junio de 2009, 13:46:42
adjunto el .hex
voy a mirar el ejemplo  de proteus a ver q tal, lo raro es eso, cuando lo probe en el modulo real funciona de maravilla.
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 29 de Junio de 2009, 19:13:19
es posible q el error lo del el proteus por q se esta utilizando el puerto B para teclado y LCD?
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 30 de Junio de 2009, 12:34:28
 :? :? :? nada q puedo poner a funcionar ese infeliz teclado en proteus, funciona cuando le da la gana :?
Título: Re: Problema con simulacion de teclado
Publicado por: fjalex en 30 de Junio de 2009, 14:30:23
Te explico unos puntos que tal vez te ayuden:

Cuando estés ejecutando fíjate en la zona de abajo de la pantalla la carga de CPU. Yo al cargar tu ejemplo mostraba 100%. De esta manera, lógicamente no puede funcionar bien la simulación.

En SET ANIMATION OPTIONS rebaja los frames per second o el time step per frame. De esta forma haces la simulación a cámara lenta y funciona. Yo puse 1 en frames y 50ms en time y me funciona, lento, pero funciona.

Luego hay que ver por qué no tiene tanta carga de trabajo y aliviarlo de alguna forma. A lo mejor puedes quitar el USB para probar o yo qué sé qué otra cosa estás haciendo ejecutar.

A ver si con estas pistas te sirven
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 30 de Junio de 2009, 20:41:03
no logro entender q pasa, asi le baje frame per second y el timestep per second el cpu se va al 100%, pero se va al 100% cuando empieza a esperar la tecla a pulsar del teclado, y no saca todos los numeros, el problema debe ser en simulacion por q en el montaje funciona bien...pero me pone los pelos de punta q no funcione
Título: Re: Problema con simulacion de teclado
Publicado por: fjalex en 01 de Julio de 2009, 08:55:30
Puedes, por favor, mandar un hardcopy de la ventana con los valores que has puesto en la configuración.

Un saludo.
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 05 de Julio de 2009, 17:23:32
probe poniendo otras configurciones pero no logre q corriera bien.....lo peor es q lo vi correr de lo lindo en otro PC y no me supieron decir porque..
mira la captura de pantalla
Título: Re: Problema con simulacion de teclado
Publicado por: Suky en 05 de Julio de 2009, 17:31:21
jhozate  yo en estos días también intenté simular el teclado, pero me funcionan bien solamente las teclas de la primer fila  :? Así que mejor me hice el teclado con Button y no tuve más problemas.  :5]
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 05 de Julio de 2009, 17:36:16
si a veces me pasa lo mismo....pero q bronca por q yo lo vi funcionar bien!!!! sera q este sirve..no hay q ponerle resistencias
(http://micropic.files.wordpress.com/2007/06/tm4.png)
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 05 de Julio de 2009, 18:17:54
armé este, pero es mas raro todavia por q se me desactivan dos filas del teclado cuando acaba de poner el mensaje en el lcd
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 12 de Julio de 2009, 13:10:03
resulta q no doy con este cuento de los teclados, lo mas extaño es que baje un archivo cuyo autor es el MLO_ en el hay un archivo prueba para mostrar en el lcd y el virtual terminal la tecla pulsada, pues bien este archivo funcionar de maravilla pero  lo compilo yo y deja de funcionar...incluso sin hacerle ningun cambio...q puede pasar?
Título: Re: Problema con simulacion de teclado
Publicado por: MLO__ en 12 de Julio de 2009, 14:20:52
Hola.

En el .c se hace uso de las librerias generales del CCS para el manejo del KBD, no se si estara uncomnet la directiva de compilacion #define use_portb_kbd TRUE.

Saludos
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 12 de Julio de 2009, 14:36:26
este es "mi codigo"

Citar

#INCLUDE <KBD.C>
#INCLUDE "FLEX_LCD.C"
#define use_portb_kbd TRUE




char C;

void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   port_b_pullups(TRUE);
   

 
   
   LCD_INIT();
   KBD_INIT();
   LCD_PUTC("TECLA:");
   PRINTF("ESTO ES UNA PRUEBA DE TECLADO");
   FOR(;;)
   {
   C=KBD_GETC();
      IF(C!='\0')
      LCD_PUTC(C);
   }
 
}

y este es el tuyo
Citar
#include <18F452.h>
#use delay(clock=4M)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)

#include <lcd.c>
#include <kbd.c>

int8 cmd=0;

void main(void)
{
   lcd_init();
   kbd_init();
   port_b_pullups(TRUE);
   lcd_putc("\ft:");
   printf("tecla:");

 while(TRUE)
 {
   cmd = kbd_getc();
   if(cmd!='\0')
   {
      printf(lcd_putc, "%c", cmd);
      printf("%c", cmd);
   }
 }
}

adjunto mi archivo de proteus y el .cof q utilizo
Título: Re: Problema con simulacion de teclado
Publicado por: jhozate en 12 de Julio de 2009, 14:48:37
 :5] :5] ya funcionó, pero q mal, a lo mejor es novatés, tan solo cambié de lugar la linea #define use_portb_kbd TRUE, la puse antes de #INCLUDE <KBD.C> y ya eso era todo.
Saludos
Título: Re: Problema con simulacion de teclado
Publicado por: Suky en 12 de Julio de 2009, 18:23:25
:5] :5] ya funcionó, pero q mal, a lo mejor es novatés, tan solo cambié de lugar la linea #define use_portb_kbd TRUE, la puse antes de #INCLUDE <KBD.C> y ya eso era todo.
Saludos
:shock: Pero en el primer mensaje, en el código eso lo habias hecho!
Título: Re: Problema con simulacion de teclado (solucionado)
Publicado por: jhozate en 12 de Julio de 2009, 18:28:44
vale si....pero no funcionaba, y pues era con otra libreria para el teclado...con la de ccs y esta simulacion el cpu no se va al 100%
Título: Re: Problema con simulacion de teclado (solucionado)
Publicado por: Suky en 12 de Julio de 2009, 18:55:40
vale si....pero no funcionaba, y pues era con otra libreria para el teclado...con la de ccs y esta simulacion el cpu no se va al 100%
Ok! Me alegra que se haya solucionado el problema  :-/


Saludos!
Título: Re: Problema con simulacion de teclado (solucionado)
Publicado por: MLO__ en 12 de Julio de 2009, 21:24:10
Que bueno que ya salio.

Yo tenia en la libreria KBD.C descomentada esa linea.  :mrgreen: Crei que era un paso logico ....  :oops:

Saludos
Título: Re: Problema con simulacion de teclado (solucionado)
Publicado por: jhozate en 05 de Julio de 2010, 19:07:38
hola, tengo simulando un teclado pero solo me funciona si y solo si le pongo unos diodos despues de las resistencias pull ups, asi   q :oops: el CAD

VDD__/\/\/\___-->___pin teclado

mi pregunta es si en la realidad necesito esos diodos?? o solo las pull ups conectadas a secas a los pines del teclado?
gracias