
Untitled
By: a guest on
May 15th, 2012 | syntax:
C | size: 1.09 KB | hits: 16 | expires: Never
uint16_t read(void)
{
uint16_t data = 0;
STARTSIG_PORT |= (1<<STARTSIG_PIN);
for(uint16_t r = 0; r <= 2048 ; r++)
{
if(DCLK_PORT & ( 1 << DCLK_PIN))
DCLK_PORT &= ~(1<<DCLK_PIN);
else
DCLK_PORT |= (1<<DCLK_PIN);
if(r == 1)
{
STARTSIG_PORT &= ~(1<<STARTSIG_PIN);
}
if(r > 0)
{
PORTC |= (1 << PC5);
}
if(SYNCSIG_PORT & ( 1 << SYNCSIG_PIN ))break;
}
if(DCLK_PORT & ( 1 << DCLK_PIN))
{
DCLK_PORT &= ~(1<<DCLK_PIN);
DCLK_PORT |= (1<<DCLK_PIN);
DCLK_PORT &= ~(1<<DCLK_PIN);
}
else
{
DCLK_PORT |= (1<<DCLK_PIN);
DCLK_PORT &= ~(1<<DCLK_PIN);
}
for(int i = 15; i >= 0; i--)
{
DCLK_PORT |= (1<<DCLK_PIN);
data |= ((DATASIG_PORT&(1<<DATASIG_PIN))<<i);
DCLK_PORT &= ~(1<<DCLK_PIN);
}
return data;
}