soft spi

Gast #471746
Lesenswert?

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();
    }

}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren