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
  • If you want to write mixed program,you can write the header files like this:

    //my.h
    #ifndef __MY_H__
    #define __MY_H__
    
    //Declaration
    extrn unsigned char bdata flags;
    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__
    

    Then you can include it in your asm files.

    ;assem.asm
    #include "my.h"
    
    mov ...
    clr ...
    ...
    

    A51 supports all the preprocessors of C51.

Reply
  • If you want to write mixed program,you can write the header files like this:

    //my.h
    #ifndef __MY_H__
    #define __MY_H__
    
    //Declaration
    extrn unsigned char bdata flags;
    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__
    

    Then you can include it in your asm files.

    ;assem.asm
    #include "my.h"
    
    mov ...
    clr ...
    ...
    

    A51 supports all the preprocessors of C51.

Children
No data