Hilfestellung zu C-Code für Mikrocontroller

Gast #1478050
Lesenswert?

Guten Morgen, ich hab für einen Mikrocontroller folgenden Code 
programmiert. Wenn ich im Hauptprogramm die Funktion so aufrufe
read_port("98"), dann soll auch die if-Bedingung erfüllt werden. Dies 
tut aber nicht. Was könnte ich falsch gemacht haben?
1
unsigned char read_port(char *portname)
2
{
3
  if(portname == "P98")
4
  {
5
  
6
    PMC9 = PMC9 | 0x0100;
7
    PM9  = PM9 | 0x0100;
8
  }
9
  
10
  return P9;
11
}
Gast #1478067
Lesenswert?

1
unsigned char read_port(char *portname)
2
{
3
  if(portname == 'P98')
4
  {
5
  
6
    PMC9 = PMC9 | 0x0100;
7
    PM9  = PM9 | 0x0100;
8
  }
9
  
10
  return P9;
11
}
12

13
void main (void)
14
{
15
...
16
read_port('98')
17
...
18
}

Funktioniert aich nicht.
#1478069
Lesenswert?

>Funktioniert aich nicht.
Sind jetzt ja auch Strings in chars. In Hochkommas darf nur ein Zeichen, 
Zeichenketten kommen in ".

strings müssen mit strcmp verglichen werden. Einfach "==" geht nicht.

also in main
1
int main(){
2
  read_port("P98");
3
  while(1);
4
}
und in der Funktion
1
unsigned char read_port(char *portname)
2
{
3
  if(!strcmp(portname,"P98"))
4
  {
5
  
6
    PMC9 = PMC9 | 0x0100;
7
    PM9  = PM9 | 0x0100;
8
  }
9
  
10
  return P9;
11
}

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