We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
There is a BUG in the compilation of a bit definition:
unsigned int bdata my_int; sbit bit15 = my_int ^ 15; sbit bit7 = my_int ^ 7; void main() { my_int = 0x8000; if(bit15) { // Here we shall not appear,as compiller // will be erroneous to check 7-bit of // a variable my_int instead of 15-bit // (as this variable place in memory in // little endian order) // ... } if(bit7) { // oops! we here! // ... } }
Do not stir bosh. Speak to the point. I have studied '51 architecture at once as soon as it has appeared. As it is the one-byte controller all other "wide" types of data are added by C-compiler. So C-compiler knows as data place in memory and it can take the necessary byte and to analyse necessary bit. I have declared the integer (16-bits) and I want at it 14-th bit. Instead of it I for some reason should read any ridiculous explanations and specify 6-bats. Unless it not absurdity?