Hallo
in diesem kleinen Code versteh ich was nicht
1 | uint8_t iadr;
|
2 | e=0;
|
3 | for (iadr = 0x10; iadr < 0xF0; iadr ++)
|
4 | {
|
5 | e = i2c_start(iadr); // Start i2C mit Adresse Slave
|
6 | i2c_write(0x00); // Sende Daten
|
7 | i2c_stop();
|
8 |
|
9 | itoa( iadr, Buffer, 10 );
|
10 | lcd_printlc(4,2,Buffer);
|
11 |
|
12 | _delay_ms(100);
|
13 | }
|
ich möchte mit diesem Programm die Adressen im I2C Bus von 16 (0) bis
239 (254) durch suchen lassen und mir den Wert auf dem display anzeigen
lassen.
Kommentiere ich diese 3 Zeilen aus
1 | e = i2c_start(iadr); // Start i2C mit Adresse Slave
|
2 | i2c_write(0x00); // Sende Daten
|
3 | i2c_stop();
|
läuft die Schleife und die Werte werden auf dem Display angezeigt.
Innerhalb der 3 Zeilen hängt sich das Programm auf. Gebe ich z.B. für
iadr die Adresse 0x40 oder 64 ein geht es.
Warum zählt es nicht durch?
LG ???