This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

About printf() function !

HI :
if I use these codes the "printf" don't work:
{
SCON = 0x50;
TMOD |= 0x22; TCON = 0x40; TH1 = 0xFD;
//TI = 1;
printf(" thank you");
}
BUT if I set TI to hight(TI = 1) ,the printf
work fine !

why?

Parents
  • Hello HE

    Keil's default implimentation of printf calls putchar. putchar() as can be seen from putchar.c source waits for TI to go high prior to transmitting the first character.

    So as long as your using Keil's putchar function, you are going to need to set TI during initilization or before calling printf.

    Phil

    /*
     * putchar (mini version): outputs charcter only
     */
    char putchar (char c)  {
      while (!TI);
      TI = 0;
      return (SBUF = c);
    }
    

Reply
  • Hello HE

    Keil's default implimentation of printf calls putchar. putchar() as can be seen from putchar.c source waits for TI to go high prior to transmitting the first character.

    So as long as your using Keil's putchar function, you are going to need to set TI during initilization or before calling printf.

    Phil

    /*
     * putchar (mini version): outputs charcter only
     */
    char putchar (char c)  {
      while (!TI);
      TI = 0;
      return (SBUF = c);
    }
    

Children
No data