Hilfestellung zu C-Code für Mikrocontroller

Gast #1478050
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
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.
>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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.