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

Impact of using bit instead of sbit for sfr while declaring

Keil compiler doesn't allow us to use sbit in declaration file (.h - header) So I am using bit in declaration of 1-bit variable in my .h (header) file and sbit in definition (.c) file for sfr . I am working on a critical project so will this cause any problem while executing on hardware?? If yes, when??

Parents
  • Thank you :)

    File 1: var1.h

    #define a= 0x125D;
    
    extern unsigned char bdata obc;
    extern unsigned char idata b;
    
    extern bit val0;
    extern bit val1;
    extern bit val2;
    extern bit val3;
    extern bit val4;
    extern bit val5;
    extern bit val6;
    extern bit val7;
    

    File 2: var1.c

    #include "var1.h"
    
    unsigned char bdata obc;
    unsigned char idata b;
    
    sbit val0= obc^0;
    sbit val1= obc^1;
    sbit val2= obc^2;
    sbit val3= obc^3;
    sbit val4= obc^4;
    sbit val5= obc^5;
    sbit val6= obc^6;
    sbit val7= obc^7;
    

    File 3: MyProg.c

    #include "var1.h"
    
    void main(void)
    
    {..........
    ...........
    
    if cond...1
    {........
    .........
    ......... }
    
    else if cond..2
    {......
    .......
    obc=XBYTE[a] & b;
    .......
    ....... }
    
    else
    {........
    .........
    ......... }
    
    .........
    .........
    }
    

Reply
  • Thank you :)

    File 1: var1.h

    #define a= 0x125D;
    
    extern unsigned char bdata obc;
    extern unsigned char idata b;
    
    extern bit val0;
    extern bit val1;
    extern bit val2;
    extern bit val3;
    extern bit val4;
    extern bit val5;
    extern bit val6;
    extern bit val7;
    

    File 2: var1.c

    #include "var1.h"
    
    unsigned char bdata obc;
    unsigned char idata b;
    
    sbit val0= obc^0;
    sbit val1= obc^1;
    sbit val2= obc^2;
    sbit val3= obc^3;
    sbit val4= obc^4;
    sbit val5= obc^5;
    sbit val6= obc^6;
    sbit val7= obc^7;
    

    File 3: MyProg.c

    #include "var1.h"
    
    void main(void)
    
    {..........
    ...........
    
    if cond...1
    {........
    .........
    ......... }
    
    else if cond..2
    {......
    .......
    obc=XBYTE[a] & b;
    .......
    ....... }
    
    else
    {........
    .........
    ......... }
    
    .........
    .........
    }
    

Children