| ??? 02/14/06 07:24 Read: times |
#109913 - What are you trying to do? Responding to: ???'s previous message |
David Tong said:
I defined in .h file: sbit key0 = P1^1; sbit key1 = P1^2; //more keys here as needed #define MaxKey N // number of keys usedand have a function in .c file: unsigned char keyState(keyID)
{
switch(keyID) {
case 0:
return key0;
break;
#if MaxKey>1
case 1:
retrun key1;
break;
#endif
// for each key, enclose case statement in #if
#if MaxKey>N
case N:
return keyN;
break;
} // end switch
}
The program works but programming style is not satisfactory. Can it be more elegant? I don't think it's a matter of style - the whole approach seems bizarre! What is keyID? When you define an sbit in Keil C51, you are effectively defining an address - why do you want your function to return an sbit address as a char?! Please explain what you are actually trying to achieve! |
| Topic | Author | Date |
| question on keil C sbit access | 01/01/70 00:00 | |
| What are you trying to do? | 01/01/70 00:00 | |
| Try or doing | 01/01/70 00:00 | |
| sbit access | 01/01/70 00:00 | |
| The 8051 does not have indirect bits | 01/01/70 00:00 | |
| send me keilc code for keypad | 01/01/70 00:00 | |
| Yes sir! Right away sir! | 01/01/70 00:00 | |
| How about Fries? | 01/01/70 00:00 | |
| please tell more | 01/01/70 00:00 | |
| Buttons library | 01/01/70 00:00 | |
| how to post code | 01/01/70 00:00 | |
The main question | 01/01/70 00:00 |



