Abfrage PCF8574 mit SAM D21

Gast #5126150
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren