??? 06/01/05 20:16 Read: times |
#94205 - Right answer, wrong reason Responding to: ???'s previous message |
Vignesh Prasad said:
After a day of trying out all the combinations, I came to know what was the mistake I was doing.
In the loop, I have given like this: while(P0^7==x);But when i used something like this: sbit my_bit=0x87; while(my_bit==x);This one is working. Nevertheless, I have found out where I had made the mistake. I think P0^7 is not defined as a sbit in reg51.h. Only P0 is defined as sfr P0=0x80. When I explicitly define my_bit and use, things are working fine. You are very nearly there! The trouble is with the '^' operator: P0^7 is the bitwise exclusive of the value read from P0 with the byte value seven. This also applies to Keil C51. In Keil C51, sbit P0_7 = P0^7; defines P0_7 as a single-bit variable to acces bit-7 of P0. http://www.keil.com/support/m...ittype.htm This applies to Keil C51 only, and only when used in and sbit definition - when used in any other expression, the '^' operator has its standard 'C' function of bitwise exclusive-OR. We can only stand and wonder what on earth posessed Keil to do something so obviously bound to cause confusion... :-( Yes, it caught me out the first time! Note that, in Keil C51, sbit my_bit=0x87;and sbit my_bit=P0^7;are equivalent (given a suitable sfr definition for P0, of course). |
Topic | Author | Date |
Keil: getting input | 01/01/70 00:00 | |
If it works in ASM it Works in C | 01/01/70 00:00 | |
Why C?! | 01/01/70 00:00 | |
Irrelevant | 01/01/70 00:00 | |
Of Course | 01/01/70 00:00 | |
key scan | 01/01/70 00:00 | |
Delay.. | 01/01/70 00:00 | |
Delay | 01/01/70 00:00 | |
Software Delay Loops | 01/01/70 00:00 | |
Software Delay Loops | 01/01/70 00:00 | |
Learning 'C' | 01/01/70 00:00 | |
to be precise.. | 01/01/70 00:00 | |
Debounce | 01/01/70 00:00 | |
completely missed it.. | 01/01/70 00:00 | |
to be precise... | 01/01/70 00:00 | |
Sorry Leo ! | 01/01/70 00:00 | |
Inferences | 01/01/70 00:00 | |
Right answer, wrong reason | 01/01/70 00:00 | |
and therefore | 01/01/70 00:00 | |
Congratulations | 01/01/70 00:00 | |
to: Raghu Sir![]() | 01/01/70 00:00 | |
BIts! | 01/01/70 00:00 |