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

How to pass sbit variables to other functions?

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.

Parents
  • My main problem is that IF condition would increase the number of instructions it takes to shift a bit

    Not compared to the original code you showed here --- that conditional was already present there.

    But yes, if speed is a major issue for this routine, you'll want to move this 'if' as far out of the central loops as possible. Possibly as far as having two copies of the entire "shift data into FPGA" function:

    if (old_hardware)
       shift_data_into_FPGA_old_hardware();
    else
       shift_data_into_FPGA_new_hardware();

Reply
  • My main problem is that IF condition would increase the number of instructions it takes to shift a bit

    Not compared to the original code you showed here --- that conditional was already present there.

    But yes, if speed is a major issue for this routine, you'll want to move this 'if' as far out of the central loops as possible. Possibly as far as having two copies of the entire "shift data into FPGA" function:

    if (old_hardware)
       shift_data_into_FPGA_old_hardware();
    else
       shift_data_into_FPGA_new_hardware();

Children