Grossuhr schrieb:
> unsigned char send =0;
>
> #define SCLK P2_7
> #define I_O P2_6
>
>
> for (i=1;i<=8;i++){
>
> if (send & (1<<0)) // ist Bit 0 von send auf high?
> I_O = 1; //dann I_O auf eins setztn
>
> else I_O = 0; //sonst I_O auf null setztn
>
> send = send >> 1; //Die Bits von send 1 nach rechts verschieben
wieso send?
Ich denke send repräsentiert deinen Eingangsport, von dem du das Bit
abgreifst?
Wieso I_O auf 0 oder 1 setzen?
> SCLK =1; //Sobald SCLK aug high ist liest der empfänger
> IC
> wait();
> SCLK = 0;
> }
Ein paar Dinge allgemeinerer Natur:
* gewöhn dir gleich jetzt eine saubere äußere Form an.
Du findest Fehler viel leichter!
So etwas
> if (send & (1<<0)) // ist Bit 0 von send auf high?
> I_O = 1; //dann I_O auf eins setztn
>
> else I_O = 0; //sonst I_O auf null setztn
geht gar nicht!
Wenn du nur 1 Anweisung hast, die unter einem if oder else steht
dann schreib sie entweder immer in die gleiche Zeile oder
fang immer eine neue Zeile an, in der du die Anweisung einrückst
Aber nicht mischen! Immer die gleiche äussere Form verwenden
Für Anfänger ist es oft besser, generell immer eine neue Zeile
zu beginnen, und dort einzurücken. ALso
if( send & (1<<0) )
I_O = 1;
else
I_O = 0;
* Das hier
for (i=1;i<=8;i++){
solltest du dir auch gleich wieder abgewöhnen. In C wird grundsätzlich
immer bei 0 angefangen zu zählen. Willst du eine Schleife haben, die
8 mal durchläuft, dann heisst das
for( i = 0; i < 8; i++ )
Alles andere wird dich über kurz oder lang bei Arrays in den Wahnsinn
treiben. Vor allen Dingen, wenn du nicht mit 0 zu zählen anfängst.