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

Errors due to including of stdio header file

This is code for showing temperature sensed value of UART0 of lpc2138

#include <stdio.h>
#include"LPC213.h" // Define LPC2148 Header File

#define CR 0x0D
#define DONE 0x80000000
#define START 0x01000000
#define PRESET 0x00230600

void Delay ();
void init_serial (void);
int putchar (int ch);
int getchar(void);
int main ()
{ unsigned long Val;
char *Ptr = "Current Temperature is:";
VPBDIV = 0x02; //pclk @ 30MHz
init_serial();
PINSEL1 = 0x01 << 24; //P0.28 configure as ADC0.1
AD0CR = PRESET | 0x02;
AD0CR |= START; //Start Conversion NOW
while (1)
{ do
{ Val = AD0GDR;
} while ((Val & DONE) == 0);
Val = ((AD0GDR >> 6) & 0x3FF);
while (*Ptr)
{ putchar(*Ptr++);
} printf ("%4d ", Val);
putchar(getchar()); // Echo terminal

}
//printf ("\xF8\F \r");
}

void Delay ()
{ unsigned int i,j;
for (i=0;i<50;i++)
for (j=0;j<500;j++);
}

void init_serial (void)
{ PINSEL0 = 0x00000005; // Enable RxD0 and TxD0
U0LCR = 0x00000083; //8 bits, no Parity, 1 Stop bit
U0DLL = 0x000000C3; //9600 Baud Rate @ 30MHz VPB Clock
U0LCR = 0x00000003;
} int putchar (int ch)
{ if (ch == '\n')
{ while (!(U0LSR & 0x20));
U0THR = CR;
} while (!(U0LSR & 0x20));
return (U0THR = ch);
} int getchar(void)
{ while (!(U0LSR & 0x01));
return (U0RBR);
}

This is the above code which shows following errors when I add studio.h header file in code

compiling adc.c...
adc.c(9): warning: #1295-D: Deprecated declaration Delay - give arg types
adc.c(11): error: #79: expected a type specifier
adc.c(12): error: #55: too many arguments in macro invocation
adc.c(12): error: #79: expected a type specifier
adc.c(55): error: #79: expected a type specifier
adc.c(55): error: #141-D: unnamed prototyped parameters not allowed when body is present
adc.c(65): error: #55: too many arguments in macro invocation
adc.c(65): error: #79: expected a type specifier
adc.c(65): error: #141-D: unnamed prototyped parameters not allowed when body is present
Target not created

And if I dont add studio.h header file then printf function doesn't work.
What should I do in this case? I guess I need printf function in order to print ADC value to the UART terminal.

Parents
  • You are hard to help since you don't like to post readable code.

    Why do you think printf() text should end up on the UART?
    What have you done to make that happen?
    How would the compiler/linker know that your UART should be seen as a console?

    By the way - have you really found many posts that have recommended the use of a dumb busy-loop to get a trusty 1ms delay?

Reply
  • You are hard to help since you don't like to post readable code.

    Why do you think printf() text should end up on the UART?
    What have you done to make that happen?
    How would the compiler/linker know that your UART should be seen as a console?

    By the way - have you really found many posts that have recommended the use of a dumb busy-loop to get a trusty 1ms delay?

Children
No data