Forum: Mikrocontroller und Digitale Elektronik Pin Abfrage LPC23xx


von Patrick J. (pausf)


Lesenswert?

Hallo,

ich arbeite gerade an einer Pinabfrage auf einem MCB2300 Version 3.1 mit 
einem LPC2378.
Der für mich interessante Pin ist P2.6. Dabei möchte ich wissen ob er 
High oder Low ist und diese Information dann auf dem LCD Display 
anzeigen.
Jedoch verändert sich die Ausgabe ausschließlich wenn ich mit der 
Bedingungen im If-Befehl variiere.
Schreibe ich !=1 wird mir positiv angezeigt und schreibe ich !=0 wird 
negativ angezeigt. Dabei spielt es keine Rolle welchen Zustand der Pin 
gerade hat.

1
void pin_abfrage()
2
{  
3
  FIO2DIR |= 0x0; 
4
  FIO2MASK |=  0x00000000;
5
6
  if ((FIO2PIN &(1<<6)) !=0)
7
    {
8
      lcd_print ("positiv");
9
    }
10
  else 
11
    {     
12
      set_cursor (0, 1);  
13
      lcd_print("negativ"); 
14
    }
15
    
16
}

Ich habe Beitrag "Pin Zustand abfragen: LPC23xx" bereits gelesen 
aber es hat mich leider nicht weiter gebracht.
Für jede Hilfe bin ich sehr Dankbar.

von Jim M. (turboj)


Lesenswert?

Patrick Janik schrieb:
> Jedoch verändert sich die Ausgabe ausschließlich wenn ich mit der
> Bedingungen im If-Befehl variiere.
> Schreibe ich !=1 wird mir positiv angezeigt

Nun, 0 und 1<<6 sind auch immer verschieden von 1 (eins). Mal ein C-Buch 
in die Hand genommen? Die Sprache ist nicht selbsterklärend.

> und schreibe ich !=0 wird
> negativ angezeigt.

Das hat P2.6 low Pegel. Was u.U. sich durch die
1
FIO2DIR |= 0x0; 
2
FIO2MASK |=  0x00000000;

auch leicht erklärt, den diese beiden Statements tun überhaupt nix 
sinvolles.

von W.S. (Gast)


Lesenswert?

Patrick Janik schrieb:
> FIO2DIR |= 0x0;
> FIO2MASK |=  0x00000000;

könntest du mal erklären, was du damit bezweckst?

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.