Hallo
Ich habe folgenden Code
1 | void send_TWI_8(unsigned char ucData)
|
2 | {
|
3 | unsigned char ucCounter = 0;
|
4 | unsigned char ucTemp = 0;
|
5 | DDRD |= (1 << DDD5); //Ausgang setzen
|
6 | /*while(ucCounter != 8)
|
7 | {
|
8 | ucTemp = ucData & 0x80;
|
9 | if(ucTemp > 0) SDA_1;
|
10 | if(ucTemp == 0) SDA_0;
|
11 | ucData = ucData << 1;
|
12 | clk_TWI();
|
13 | ucCounter++;
|
14 | }
|
15 | _delay_ms(50);*/
|
16 | DDRD &= ~( 1 << DDD5 ); //Eingang setzen
|
17 | //SCL_1;
|
18 | while(PIND & (1<<PIND5)); //Warten bis der Eingang auf Low ist
|
19 | _delay_ms(50);
|
20 | SCL_0;
|
21 | }
|
So... nun das problem:
Wenn ich die Zeile zum Ausgang setzen oben entferne, wartet das programm
bis der Eingang auf Low ist. Wenn die Zeile jedoch eingebaut ist, so
klappt es nicht mehr. Das Programm rauscht einfach dur das While
hindurch egal ob der Eingang auf 1 oder 0 ist.
Woran kann das liegen?
Danke schonmal