Forum: Mikrocontroller und Digitale Elektronik Abfrage PCF8574 mit SAM D21


von Klarer (Gast)


Lesenswert?

Hallo Gemeinde
brauchte mal ein paar Tips wie ich das machen muss. Möchte mit einem SAM 
D21 einen Taster an einem PCF8574 abfragen ob er geschaltet hat oder 
nicht.
1
void write_a_data(void)      // Bus schreiben
2
  {
3
  uint16_t timeout;
4
  timeout = 100;
5
  wr_a_packet.address = SLAVE_ADDRESS_1;
6
  wr_a_packet.data_length = DATA_LENGTH;
7
  wr_a_packet.data = i2c_write_buffer_a;
8
  while (i2c_master_write_packet_wait(&i2c_master_instance, &wr_a_packet) != STATUS_OK)
9
    {
10
    if (timeout ++ == Timeout )
11
        {
12
        // Error LED_PB30_ON
13
        break;
14
        }
15
    }
16
  }
mit diesem Teil kann ich z.B. LEDs auf einem PCF schalten.
Bis her habe ich es so versucht:
1
packet.address     = (SLAVE_ADDRESS_2);
2
    packet.data_length = 32;      //DATA_LENGTH_1;
3
    packet.data        = i2c_read_buffer;
4
    timeout = 0;
5
    while (i2c_master_read_packet_wait(&i2c_master_instance, &packet) != STATUS_OK)
6
      {
7
      if (timeout++ == Timeout)
8
        {
9
        // Error LED_PB30_ON
10
        break;
11
        }
12
      }
leider geht das nicht. Habe mich an das Datenblatt des Herstllers 
gehalten.
Eine noch blöde Frage dazu. Beim AVR setze ich doch erst den Ausgang auf 
H und lese dann die Veränderung ein. Wie mache ich das beim ARM?
 LG KLR

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.