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

how to use a bit variable defined in another module?

Gentlemen:
I wanna use a bit variable in file:assem.asm.And the bit variable is defined in another file:main.c;Just as follows:

in main.c
unsigned char bdata flags;
sbit red_flag = flags^1;

in assem.asm
what should I do to let the keil know I want invoke the red_flag bit variable which is defined in main.c;how to declare it? The MCU I use is atmel at89s52.Thanks.
---going to mad.

Parents
  • Oh,sorry.The extrn directive can be written like this:

    //my.h
    #ifndef __MY_H__
    #define __MY_H__
    
    //Declaration
    #ifdef __C51__
        extrn unsigned char bdata flags;
    #else
        EXTRN DATA:BYTE (flags)
    #endif
    sbit red_flag = flags^1;//Don't put this line to C source files
    
    #ifdef __C51__
    //C function prototype
    void TextOut (BYTE byChar);
    #endif //__C51__
    
    #endif //__MY_H__
    
    See the spec please.

Reply
  • Oh,sorry.The extrn directive can be written like this:

    //my.h
    #ifndef __MY_H__
    #define __MY_H__
    
    //Declaration
    #ifdef __C51__
        extrn unsigned char bdata flags;
    #else
        EXTRN DATA:BYTE (flags)
    #endif
    sbit red_flag = flags^1;//Don't put this line to C source files
    
    #ifdef __C51__
    //C function prototype
    void TextOut (BYTE byChar);
    #endif //__C51__
    
    #endif //__MY_H__
    
    See the spec please.

Children