Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


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

error C141 and error C202

Hello,
when trying to compile an small C program with uVision3 v3.53 I'm coming across some unexpected - at least to me - compilation errors, following is the complete program:

#include <reg515c.h>
#define H 1 /* H abk. von HIGH */
#define L 0 /* L abk. von LOW */

sbit P4_0 = P4^0;

main()
{
        P4 = 0xFF;      /* Port 4 als Eingang eingerichtet */

        /*Why on earth these lines cannot be compiled?*/
        
        unsigned char zustand = H;
        unsigned int i;
        
        while(1)
        {

                for(i = 0; i <= 8; i++)
                {
                        while(P4_0 == H)
                                ;
                        if(P4_0 == L && zustand == H)
                        {
                                zustand = L;
                                P1 = i;
                        }
                        while(P4_0 == L)
                                ;
                        if(P4_0 == H && zustand == L)
                        {
                                zustand = H;
                        }
                }
        }
}

And the error the compiler reports are:

Build target 'mM-515'
assembling STARTUP.A51...
compiling PinNummern.c...
PINNUMMERN.C(11): error C141: syntax error near 'unsigned'
PINNUMMERN.C(11): error C202: 'zustand': undefined identifier
PINNUMMERN.C(12): error C141: syntax error near 'unsigned'
PINNUMMERN.C(12): error C202: 'i': undefined identifier
PINNUMMERN.C(13): error C202: 'zustand': undefined identifier
PINNUMMERN.C(18): error C202: 'i': undefined identifier
PINNUMMERN.C(22): error C202: 'zustand': undefined identifier
PINNUMMERN.C(24): error C202: 'zustand': undefined identifier
PINNUMMERN.C(25): error C202: 'i': undefined identifier
PINNUMMERN.C(29): error C202: 'zustand': undefined identifier
PINNUMMERN.C(31): error C202: 'zustand': undefined identifier
Target not created

The offending lines are the ones in red, neither the variable zustand nor i have sfr or sbit type so it should be allowed to declare them inside a function.
When taking those variables out of main's body this way:

#include <reg515c.h>
#define H 1 /* H abk. von HIGH */
#define L 0 /* L abk. von LOW */

sbit P4_0 = P4^0;

unsigned char zustand = H;
unsigned int i;

main()
{
        P4 = 0xFF;      /* Port 4 als Eingang eingerichtet */

        /* etc */

The program compiles without errors.

Any help would be appreciated. Thanks.