Array Initialisierung und Itertation

(Firma: Flk Consulting UG) #5104582
Lesenswert?

Hallo Zusammen,

ich hänge gerade wahrscheinlich an einem Anfängerfehler sehe aber den 
Wald vor lauter Bäumen nicht mehr.

Ich initialisiere ein Array mit 10 Elementen vom Type
1
typedef struct _fb_irmpdata
2
{
3
  uint8_t key;
4
  IRMP_DATA irmp_data;
5
} FB_IRMP_DATA;
1
FB_IRMP_DATA irmpdata[MAXCODES] =  {
2
  { KEY1,     {0x00,0x00,0x00,0x00} },
3
  { KEY2,     {0x00,0x00,0x00,0x00} },
4
  { KEY3,     {0x00,0x00,0x00,0x00} },
5
  { KEY4,     {0x00,0x00,0x00,0x00} },
6
  { KEYUP,    {0x0B,0x64,0x0A,0x00} },
7
  { KEYDOWN,  {0x0B,0x64,0x0C,0x00} },
8
  { KEYLEFT,  {0x0B,0x64,0x5C,0x00} },
9
  { KEYRIGHT, {0x0B,0x64,0x3E,0x00} },
10
  { KEYMENU,  {0x0B,0x64,0x23,0x00} },
11
  { KEYMUTE,  {0x0B,0x64,0x37,0x00} },
12
                  };

Mit der Funktion
1
uint8_t findKeyInStorage(IRMP_DATA *data)
2
{
3
  for(uint8_t i=0; i < MAXCODES; i++)
4
  {
5
    if(data->address == irmpdata[i].irmp_data.address &&
6
       data->command == irmpdata[i].irmp_data.command &&
7
       data->protocol == irmpdata[i].irmp_data.protocol)
8
    {
9
      return irmpdata[i].key;
10
    }
11
  }
12
  return KEYUNDEFINED;
13
}

suche ich jetzt den Key für den IR Code.

Zu Debug-Zwecken lasse ich mir den IR Code und den gefundenen Key auf 
einem LCD ausgeben. Nur für KEYUP und KEYDOWN bekomme ich den richtigen 
Wert für Key geliefert, obwohl definitiv die richtigen Werte für alle 
Tasten im Array stehen.

Wo liegt mein Denkfehler :-(

Gruß
Frank
Angehängte Dateien:
(Firma: Flk Consulting UG) #5104638
Lesenswert?

Hallo Stefan,

irmpdata ist eine lokale Variable in der Funktion User_handle_keys und 
nicht das Array mit dem gleichen Namen.

Die Bezeichnung ist etwas unglücklich gewählt, aber der Scope lokale 
Variable funktioniert. Ich habe sie trotzdem mal umbenannt.

Gruß
Frank

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