Gast
#471746
hallo zusammen. ich wollte eine soft-spi zum laufen bekommen. nur sie
gibt mir die falschen werte aus. kann ener auf anhieb den fehler sehen?
es sollen 13 bit msb first auf fallender flanke übertragen werden.
void soft_spi (int absWert)
{
char n;
int temp;
for(n = 13 ;n > 0 ;n--) //oder 14
{
for(q=0;q<=1;q++)
{
delay1();
}
PORTD |= (1 << PD0); //clk
temp = absWert & 4096;
if (temp > 0)
{
PORTD = (1 << PD1); //datenbit
}
else
{
PORTD = (0 << PD1);
}
absWert = absWert <<1;
PORTD &= ~(1 << PD0); //clk
}
PORTD &= ~(1 << PD1);
for(q=1;q<=5;q++)
{
delay0();
}
}