Hi All, I am running into problem, where I could not pass sbit variables to a function. Here's an example: My SBIT definitions: sbit OLD_JTAG_TCK = 0xB0+3; sbit NEW_JTAG_TCK = 0x80+7; My Function: void Pulse_TCK(bit sbJTAG_TCK) { sbJTAG_TCK = 1; } My Main code: if (old_hardware) { Pulse_TCK(OLD_JTAG_TCK) } else { Pulse_TCK(NEW_JTAG_TCK) } For some reason, the above code does not work as I dont see any activity on the TCK pins. Can anyone please help me how to resolve this issue?. Note that I had used the type bit in my function parameter instead of sbit as the later gives syntax error.
My issue is I want to have a single driver that would work for both the hardwares. Having a compiler switch would force me to do 2 different drivers which kind of defeats the whole purpose. On a given system, they can use both the hardwares and we are trying to comeup with a unified driver that would support both.
Take a look at the following knowledgebase article: http://www.keil.com/support/docs/98.htm Jon
Having a compiler switch would force me to do 2 different drivers which kind of defeats the whole purpose agreed, as I said you may need to do something a little less "pretty" I merely mentioned it to show that (unpleasant) possibility. there is somewhat convoluted way to do what you want
My Function: void Pulse_TCK(bit sbJTAG_TCK) { sbJTAG_TCK = 1; } instead void Pulse_TCK(old_hardware) { if (old_hardware) OLD_JTAG_TCK = 1; else NEW_JTAG_TCK = 1; }