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