TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: chingolo en 24 de Junio de 2010, 18:18:15
-
Hola, saque el ejemplito de un libro, tengo el codigo en C en el cual utiliza un teclado matricial, cuando quiero compilar me salta 4 errores en kbd.c
undefined identifier set_tris_d
tendre que modificar el kbd.c para usar el puerto b??
adjunto el codigo
#include <16F876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock= 4000000)
#include <lcd.c>
#include <kbd.c>
void main() {
char k;
int x;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
lcd_putc("\fListo...\n");
while (TRUE) {
k=kbd_getc();
x=k-48; //Conversión numérica
if(k!=0){
if(k=='*')
lcd_putc('\f');
else
lcd_putc(k); //Imprime carácter
delay_ms(500);
printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
delay_ms(500);
printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
delay_ms(500);
printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
delay_ms(500);
lcd_putc("\fListo...\n");
}
}
}
-
Hola, el PIC16F876 solo tiene 3 puertos A, B y C. Es cierto que al comienzo de la librería KBD.c encuentras estas líneas:
// Un-comment the following define to use port B
// #define use_portb_kbd TRUE
// Make sure the port used has pull-up resistors (or the LCD) on
// the column pins
Sin embargo no es necesario que modifiques esta librería, sino que simplemente insertas #define use_portb_kbd TRUE antes de la instrucción #include <kbd.c> y con eso tienes ya configurada la librería para usarla con el puerto B. Te quedaría el encabezado más o menos así:
#include <16F876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock= 4000000)
#define use_portb_kbd TRUE
#include <lcd.c>
#include <kbd.c>
void main() {
Si estabas usando el puerto B para otras cosas debes reubicarlas en pines de otro(s) puerto(s) y actualizar el código de acuerdo a esto.
Suerte con tu proyecto!
-
buenas tambien tengo un problema con la libreria kbd.c del CCS cuando copilo me aparece error y me salta a la libreria y aparace en varias lineas este msj "indefinido identificador kbd" =s me desespera antes de incluir kbd.c defini use_portb_kbd true, pero cuando copilo me sale el msj que dije anteriormete y me señala el kbd = 6.