TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: japifer_22 en 08 de Junio de 2010, 17:26:04

Título: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: japifer_22 en 08 de Junio de 2010, 17:26:04
hola, les comento que:

resulta que me encuentro desarroyando un proyectito en el cual me paso algo muy raro segun yo  :oops:, bueno resulta que tengo 2 funciones en las cuales en ambas utilizo switch y sus cases, en el primer switch utilizo 8 cases y en la segunda funsion solo 3 cases. bueno en estos switch utiliso el manejo de la LCD con sus respectivo lcd_gotoxy(x,y). esto es para cada case de los 2 switch, pero al escrivir el ultimo case del switch que tiene solo 3 de estos me salio que no se podia compilar, devido a algo me me desia de la ROM. pero lo raro de todo esto es que yo utilisava para el manejo del a lcd la forma de printf(lcd_putc"");, pero al cambiar unos 5 printf(lcd_putc""); a la forma lcd_putc(""); el problema se avia solucionado. por que abra pasado esto ??????

un ejemplo de lo que digo:

Código: [Seleccionar]
(void)funcion_uno(void){
switch (a){
case 0:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 1:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 2:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 3:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 4:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 5:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 6:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
          }}
(void)segunda funcion(void){
switch (b){
case 0:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 1:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
case 2:lcd_gotoxy(1,2)
          printf(lcd_putc"");
          lcd_gotoxy(1,3)
          printf(lcd_putc"");
}}

asi no me dejava compilar el programa dando un problema de espasio de ROM segun el mensaje.
pero al cambiarlo a la forma:

Código: [Seleccionar]
(void)funcion_uno(void){
switch (a){
case 0:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 1:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 2:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 3:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 4:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 5:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 6:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
          }}
(void)segunda funcion(void){
switch (b){
case 0:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 1:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
case 2:lcd_gotoxy(1,2)
          lcd_putc("");
          lcd_gotoxy(1,3)
          lcd_putc("");
}}
con esto el error se avia hido y me dejo compilar bien.

estoy ocupando CCS C y el pic 16f877a
y solo ocupa mi programa el 52% de la memoria ROM y un 30% de la RAM...... bueno o algo asi  :oops:
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: migsantiago en 08 de Junio de 2010, 20:25:02
Hola, en principio lcd_putc() sirve para enviar un sólo caracter a la LCD y printf(lcdputc,"") para enviar una cadena de caracteres.

El error que tienes es que printf(lcdputc"") está mal escrito, debe ser printf(lcdputc,"").

Te aconsejo que leas el manual de CCS en la parte de lcdputc o la librería lcd.c para que comprendas mejor la diferencia.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: MGLSOFT en 08 de Junio de 2010, 21:50:13
Agregarle como diferencia que el uso de Lcd_putc() dentro del printf permite disponer de todos los modificadores de formato de printf().
Por ejemplo si queremos mostrar un numero float o en decimal con coma fija.
Esos formatos no sirven para Lcd_putc(). :mrgreen:
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: jukinch en 08 de Junio de 2010, 23:16:24
Sería bueno que pongas el error que te dio el compilador. Textual. ;-)
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Cryn en 09 de Junio de 2010, 17:21:18
Creo que lcd_putc tabién envía cadenas, solo cadenas, sin modificadores %

ya que se puede hacer:

lcd_putc("\fHola Mundo");

Y va bien.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 14:04:19
Saludos cordiales Cryn

Espero pueda usted ayudarme.
Tengo el problema de que no puedo mostrar en la LCD con la linea de código printf, en cambio, von la linea de codigo Lcd_putc, pues si puedo, eso sombinando con gotoxy, para cambio de linea y demás, osea, si solamente utilizo Lcd_putc combinando gotoxy, da como se quiere, pero si combino con printf, o solamente utilizo printf, pues no consigo que muestre lo que quiero, en si, no me muestra nada.

Dipongo de una libreria modificada que es "LCD4x20.c" la cual ya modifique, para utilizar una LCD 4x20

Código: [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>

void main()
{
   int16 q;
   float p;
   setup_adc_ports(AN0);
   lcd_init();
   while(1)
   {
      set_adc_channel(0);
      delay_us(10);
      q = read_adc();
      p = 5.0 * q/1024.0;
      printf(lcd_putc, "\fADC = %4ld", q);
      //Lcd_gotoxy(1,2);
      printf(lcd_putc, "\nVoltaje = %01.2fV", p);
      //Lcd_gotoxy (1,3);
      //Lcd_putc ("otro mensaje");
      //Lcd_gotoxy (1,4);
      //Lcd_putc ("mensaje ultimo");
      delay_ms(1000);
      //Lcd_putc ("\f");
   }
}

este código que pongo aqui, es una prueva, aun tengo que hacer que me muestre en la LCD y en el puerto serial, pero ni esto funciona bien.

Muchas gracias.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 26 de Agosto de 2010, 14:27:06
Te refieres a que si utilizas printf(lcd_putc,"Hola\nhola de buebo\nChau") no pasa a las siguientes lineas? Si es el caso la función putc de la librería está mal implementada, ésta debe detectar que recibe los caracteres especiales \f, \n para tomar una decisión.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 14:41:51
Saludos Suky, muchas gracias por responder.

El problema que tengo es que no muestra nada en la LCD, nada de nada, esto es con la línea "printf", solamente utilizando la línea lcd_putc más gotoxy, pues la cosa cambia, muestra lo que quiero en las 4 líneas, pero eso no me sirve de mucho, ya que solamente se puede mandar datos de tipo char, y no float, que es lo que quiero.

En cuanto a lo que planteas, no lo comprendo muy bien, si conoces de algun foro donde pueda informarme más al respecto de \n y demás, o es que la libreria LCD420.c esta mal???

gracias nuevamente.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 26 de Agosto de 2010, 14:48:22
Adjunta la librería para darle una mirada.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 14:58:50
bueno.

la libreria que modifique para poder conectar en el puerto B de la forma que yo quiero.

Código: [Seleccionar]
struct lcd_pin_map {      // This structure is overlayed
           BOOLEAN unused1;      // on to an I/O port to gain
           BOOLEAN unused2;      // access to the LCD pins.
           BOOLEAN rs;               // RB2
           BOOLEAN enable;        // RB3
           int     data : 4;             // RB4 - RB7
        } lcd;

#byte lcd = 6                        // This puts the entire structure
                                     // on to port B (at address 6)

#define lcd_type 2           // 0=5x7, 1=5x10, 2=2 lines


BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};
                             // These bytes need to be sent to the LCD
                             // to start it up.


                             // The following are used for setting
                             // the I/O port direction register.

struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in


BYTE lcdline;

BYTE lcd_read_byte() {
      BYTE low,high;

      set_tris_b(LCD_READ);
      //lcd.rw = 1;
      delay_cycles(1);
      lcd.enable = 1;
      delay_cycles(1);
      high = lcd.data;
      lcd.enable = 0;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(1);
      low = lcd.data;
      lcd.enable = 0;
      set_tris_b(LCD_WRITE);
      return( (high<<4) | low);
}


void lcd_send_nibble( BYTE n ) {
      lcd.data = n;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(2);
      lcd.enable = 0;
}


void lcd_send_byte( BYTE address, BYTE n ) {

      lcd.rs = 0;
      while ( bit_test(lcd_read_byte(),7) ) ;
      lcd.rs = address;
      delay_cycles(1);
      //lcd.rw = 0;
      delay_cycles(1);
      lcd.enable = 0;
      lcd_send_nibble(n >> 4);
      lcd_send_nibble(n & 0xf);
}


void lcd_init() {
    BYTE i;

    set_tris_b(LCD_WRITE);
    lcd.rs = 0;
    //lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(15);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i<=3;++i)
       lcd_send_byte(0, LCD_INIT_STRING[i]);
}


void lcd_gotoxy( BYTE x, BYTE y) {
   BYTE address;

   switch(y) {
     case 1 : address=0x80;break;
     case 2 : address=0xc0;break;
     case 3 : address=0x94;break;
     case 4 : address=0xd4;break;
   }
   address+=x-1;
   lcd_send_byte(0,address);
}

void lcd_putc( char c) {
   switch (c) {
     case '\f'   : lcd_send_byte(0,1);
                   lcdline=1;
                   delay_ms(2);
                                           break;
     case '\n'   : lcd_gotoxy(1,++lcdline);        break;
     case '\b'   : lcd_send_byte(0,0x10);  break;
     default     : lcd_send_byte(1,c);     break;
   }
}

char lcd_getc( BYTE x, BYTE y) {
   char value;

    lcd_gotoxy(x,y);
    lcd.rs=1;
    value = lcd_read_byte();
    lcd.rs=0;
    return(value);
}

Cuando hago de la forma siguiente, pues el caracter especial  \f es aceptado, se borra la pantalla.

Código: [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>

void main()
{
   int16 q;
   float p;
   setup_adc_ports(AN0);
   lcd_init();
   while(1)
   {
      Lcd_putc ("primer mensaje");
      Lcd_gotoxy(1,2);
      Lcd_putc ("segundo mensaje");
      Lcd_gotoxy (1,3);
      Lcd_putc ("otro mensaje");
      Lcd_gotoxy (1,4);
      Lcd_putc ("mensaje ultimo");
      delay_ms(1000);
      Lcd_putc ("\f");
   }
}


y cuando aumento lineas de código con printf, pues......  :?

Muchas gracias
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 26 de Agosto de 2010, 15:09:22
No veo anda raro en la librería  :? haces exactamente esto:

Código: [Seleccionar]
printf(lcd_putc,"primer mensaje");

A printf hay que indicarle cual función utilizar para enviar los datos formateados.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 15:32:10
Saludos.

Hice lo indicado, pero sin ningun resultado.

Código: [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>

void main()
{
   int16 q;
   float p;
   setup_adc_ports(AN0);
   lcd_init();
   while(1)
   {
      set_adc_channel(0);
      delay_us(10);
      q = read_adc();
      p = 5.0 * q/1024.0;
      printf(lcd_putc, "Primer mensaje");
      delay_ms(1000);
      Lcd_putc ("\f");
   }
}

tambien por este lado

Código: [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>

void main()
{
   int16 q;
   float p;
   setup_adc_ports(AN0);
   lcd_init();
   while(1)
   {
      set_adc_channel(0);
      delay_us(10);
      q = read_adc();
      p = 5.0 * q/1024.0;
      printf(lcd_putc, "Primer mensaje\n");
      printf(lcd_putc, "Segundo mensaje\n");
      printf(lcd_putc, "Tercer mensaje\n");
      printf(lcd_putc, "Ultimo mensaje");
      delay_ms(1000);
      Lcd_putc ("\f");
   }
}

seguramente no entendi su explicacion, porfavor, algun otro ejemplo, por que necesito mostrar variables float y caracteres concatenados.

Código: [Seleccionar]
printf(lcd_putc, "\nVoltaje = %01.2fV", p);
muchas gracias.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 26 de Agosto de 2010, 15:42:14
Como no detectaba ningún problema, lo simulé:

Código: C
  1. #include <16F877A.h>
  2. #device adc = 10
  3. #FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
  4. #use delay(clock=4000000)
  5. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
  6. #include <LCD4x20.C>
  7.  
  8. void main()
  9. {
  10.    int16 q;
  11.    float p;
  12.    setup_adc_ports(AN0);
  13.    lcd_init();
  14.    printf(lcd_putc,"\fPrimer mensaje");
  15.    while(1)
  16.    {
  17.      
  18.    }
  19. }


Funciona, es otro el problema  :? Con Proteus puedes hacer un debug y ver a que función llama cuando se utiliza printf.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 16:33:46
Saludos Suky

despues de muchas pruevas, puse el código exactamente como lo pusiste, fuera del ciclo repetitivo, pues fucniona, lo que no entiendo es por que no funciona dentro del ciclo, que es lo que necesito.

Muchas gracias.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 26 de Agosto de 2010, 16:48:16
Comienza con printf(lcd_putc,"\f....")

Para que se borre y el cursor se coloque en la primer posición. Luego al final dale cierto tiempo como para lograr visualizar el texto, y debería de funcionar.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 17:32:41
Saludos Suky.

ya logre hacer que me muestre en la LCD, pero solamente en 2 líneas, con la misma libreria para el lcd 4x20 "#include <LCD4x20.C>".

el código es el siguiente:

Código: [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>

void main()
{
   int16 q;
   float p;
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   lcd_init();
   while(1)
   {
      set_adc_channel(0);
      delay_us(10);
      q = read_adc();
      p = 5.0 * q / 1024.0;
      printf(lcd_putc, "\fADC = %4ld", q);
      printf(lcd_putc, "\nVoltage = %01.2fV", p);

      delay_ms(100);
   }
}

aun me falta mostrar otros datos en las lineas 3 y 4 del lcd, haber que tal me va.

Un favor, me puedes dar alguna sugerencia para que se me muestren los datos en el centro de cada línea??

Muchas gracias.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 17:49:25
Nuevamente, saludos.

Ya logre que me muestre en las 4 líneas, tambien que me mande datos al puerto serial, uyyyy......, que me costo hacer esto, pero con la yuda de Suky lo logre, muchas gracias....!!

el código es el siguiente:

Código: [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>

void main()
{
   int16 q;
   float p;
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   lcd_init();
   while(1)
   {
      set_adc_channel(0);
      delay_us(10);
      q = read_adc();
      p = 5.0 * q / 1024.0;
      printf(lcd_putc, "\fADC = %4ld", q);
      printf(lcd_putc, "\nVoltage = %01.2fV", p);
      printf(lcd_putc, "\ntercer mensaje");
      printf(lcd_putc, "\ncuarto mensaje");
      printf("ADC = %4ld", q);
      printf("Voltaje = %01.2fv\r", p);  // El \r permite cambiar de línea
      delay_ms(100);
   }
}

Ahora, lo que no me queda claro es cómo llega los datos al puerto serial, eso lo quiero para tomarlo desde un programa interfaz en la PC y que me muestre esos datos. Se que lo que pido es parte de algun otro tema en el foro, pero no lo encuentro, porfavor, me gustaria uqeme de una mano si usted save donde esta ese post.

Y porfavor, alguna sugerencia para centrar los datos que se muestran en cada línea del LCD.

Muchas gracias.
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 26 de Agosto de 2010, 18:51:18
Los datos a la PC le va a llegar codificados en ascii, por como lo envías. Y para centrar el mensaje, conociendo la cantidad de caracteres que se imprimen, puedes agregarle unos espacios al comienzo de la linea.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 26 de Agosto de 2010, 20:47:15
Saludos.

Cree un nuevo tema en este link, es sobre el ADC, bueno, lo hice por que seguramente este no es el hilo idicado. Porfavor, necesito más ayuda.

http://www.todopic.com.ar/foros/index.php?topic=31813.0

Muchas gracias..!!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: marvicdigital en 27 de Agosto de 2010, 01:31:28
Hola.
Aprovecho este hilo para hacer una pregunta con respecto al LCD 4x20 que hay en las librerías.
Estoy haciendo una práctica con un PIC16F628A para iniciarme en C con los PIC sobre todo con este programa el PCWHD, la práctica consiste en transmitir datos via RS232 del PC al PIC y que este me muestre los datos en un LCD de 4x20, el problema que tengo es que uso B1 y B2 del PIC para la comunicación aprovechando la interrupción, y los 4 bits más altos del puerto B para los datos de 4 bits para el LCD; y en le puerto _A  A0 = enable , A1=R/W  y A2=RS..mi gran duda es como modifico el LCD420.c para cambiar el enable, R/W y RS del puerto B al Puerto A sin tanto trauma para mí, mientras aprendo un poco más del lenguaje C   ;-)

Gracias por la mano que me puedan dar.

Saludos
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 27 de Agosto de 2010, 01:34:54
La librería de CCS no es flexible en eso, puedes buscar otra librería como flex_lcd_4x20. c o algo así que está en el foro de CCS.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: marvicdigital en 27 de Agosto de 2010, 02:51:12
La librería de CCS no es flexible en eso, puedes buscar otra librería como flex_lcd_4x20. c o algo así que está en el foro de CCS.


Saludos!

Gracias Suky, ya tengo la flex_lcd_4x20, hago las declaraciones para los puertos a usar, pero al compilarlo me sale un error diciendo que:

Error 128 ,  en el archivo flex, donde dice que me hace falta el #device antes de una linea de el archivo, supongo que me quiere decir que debo poner el procesador que estoy usando, pero si ya está declarado en el main.c y en el main.h, bueno ya probé en ambos y me sale el mismo error...

Código: C
  1. #include <16F628A.h>
  2.  
  3. #FUSES NOWDT                    //No Watch Dog Timer
  4. #FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
  5. #FUSES PUT                      //Power Up Timer
  6. #FUSES NOPROTECT                //Code not protected from reading
  7. #FUSES BROWNOUT                 //Reset when brownout detected
  8. #FUSES NOMCLR                   //Master Clear pin used for I/O
  9. #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
  10. #FUSES NOCPD                    //No EE protection
  11.  
  12. #use delay(clock=4000000)
  13. #use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
  14.  
  15. //#include "I:TES_PICC\main.h"
  16. #int_TBE
  17. #include "I:TES_PICC\Flex_LCD4x20.c"
  18.  
  19. void  TBE_isr(void)
  20. {
  21.  
  22. }
  23.  
  24. #int_RDA
  25. void  RDA_isr(void)
  26. {
  27.  
  28. }
  29.  
  30.  
  31.  
  32. void main()
  33. {
  34.  
  35.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  36.    setup_timer_1(T1_DISABLED);
  37.    setup_timer_2(T2_DISABLED,0,1);
  38.    setup_comparator(NC_NC_NC_NC);
  39.    setup_vref(FALSE);
  40.    enable_interrupts(INT_TBE);
  41.    enable_interrupts(INT_RDA);
  42.    enable_interrupts(GLOBAL);
  43. //Setup_Oscillator parameter not selected from Intr Oscillator Config tab
  44.  
  45.    // TODO: USER CODE!!
  46.  
  47. }

Algo debo tener mal..agradezco una ayuda y explicación de que es o que hago mal.

Gracias de antemano.

Saludos
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Suky en 27 de Agosto de 2010, 09:18:21
Hay un #int_TBE y después el include de la librería  :shock: Si estás usando ese código, ahí está el error.


Saludos!
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: marvicdigital en 30 de Agosto de 2010, 00:03:41
Hay un #int_TBE y después el include de la librería  :shock: Si estás usando ese código, ahí está el error.


Saludos!

Gracias Suky por tu colaboración, pero tenía un error en el compilado, y era que le daba al botón de Build All y no al de Compiler  :D..en fía ya estoy jugando con este LCD  ;-)

Mil gracias

Saludos
Título: Re: diferencia entre printf(lcd_putc"") y lcd_putc("")
Publicado por: Lord_Duran en 31 de Agosto de 2010, 21:53:33
Saludos

Cree un nuevo tema sobre dudas que tengo en el uso de funciones en CCS, porfavor, necesito esas aclaraciones para seguir avanzando.

http://www.todopic.com.ar/foros/index.php?topic=31867.0

Muchas gracias