Hallo,
ich habe ein Problem mit dem MCP23008.
Hier der Code:
1 | // Hauptschleife
|
2 | while(1)
|
3 | {
|
4 |
|
5 | //LED blinken lassne
|
6 |
|
7 | i2c_start_wait(MCP23008_ADDR+I2C_WRITE); // set device address and write mode
|
8 | i2c_write(0x09); // GPIO Register
|
9 | i2c_write(0xFF); // Data: all pins high
|
10 | i2c_stop(); // set stop conditon = release bus
|
11 |
|
12 | uart_puts("1.\n");
|
13 |
|
14 | for (i=0; i<100; i++)
|
15 | { _delay_ms(10);
|
16 | }
|
17 |
|
18 | i2c_start_wait(MCP23008_ADDR+I2C_WRITE); // set device address and write mode
|
19 | i2c_write(0x09);
|
20 | i2c_write(0x00);
|
21 | i2c_stop(); // set stop conditon = release bus
|
22 |
|
23 | uart_puts("2.\n");
|
24 |
|
25 | for (i=0; i<100; i++)
|
26 | { _delay_ms(10);
|
27 | }
|
28 |
|
29 |
|
30 | } //while
|
An der seriellen sehe ich 1/2 im Wechsel, nur leuchtet meine LED an GP0
nicht :-)
Reset ist auf high gesetzt.
Sieht jemand einen Fehler ? Anbei das Datenblatt (leider 500kb).
Gruss,
Pete