unsigned char ctrl[3]={0x12,0x34,0x55};
void ctl_output()
{
unsigned char i;
SCLR_LOW;
udelay(2);
SCLR_HIGH;
udelay(2);
// CLEAR
OUTPUT_LOW;
S_CLK_LOW;
S_DATA_LOW;
CLK_LOW;
for (i=0 ; i < 8 ; i++)
{
CLK_LOW;
if ( ctrl[0] & (0x01<<i) )
S_DATA_LOW;
else
S_DATA_HIGH;
//register shifts bits on upstroke of clock pin
CLK_HIGH;
//zero the data pin after shift to prevent bleed through
S_DATA_LOW;
}
CLK_LOW;
for (i=0 ; i < 8 ; i++)
{
CLK_LOW;
if ( ctrl[1] & (0x01<<i) )
S_DATA_LOW;
else
S_DATA_HIGH;
//register shifts bits on upstroke of clock pin
CLK_HIGH;
//zero the data pin after shift to prevent bleed through
S_DATA_LOW;
}
CLK_LOW;
for (i=0 ; i < 8 ; i++)
{
CLK_LOW;
if ( ctrl[2] & (0x01<<i) )
S_DATA_LOW;
else
S_DATA_HIGH;
//register shifts bits on upstroke of clock pin
CLK_HIGH;
//zero the data pin after shift to prevent bleed through
S_DATA_LOW;
}
CLK_LOW;
S_CLK_HIGH;
S_CLK_LOW;
}