Forum: Mikrocontroller und Digitale Elektronik MCP23008 Problem


von Pete (Gast)


Angehängte Dateien:

Lesenswert?

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

von Andreas K. (a-k)


Lesenswert?

Solange der Portpin als Eingang programmiert ist, muss da auch nichts 
leuchten.

von Pete (Gast)


Lesenswert?

Danke! Das war's :-)

Ein
     i2c_start_wait(MCP23008_ADDR+I2C_WRITE);
     i2c_write(0x00);
     i2c_write(0x00);
     i2c_stop();

vorher hilft :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.