mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MC 167 IO Eingang


Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab folgendes Problem, zwar ist es echt simple aber ich kann es
nicht im griff bekommen.Ich hab ein Borad MC 167 CR von Phytec und
programiere in Keil.

Ich kann einfach an die Reihe krigen einen IO Eingang zu konfigurieren
oder zu realisiern.
Ich will das wenn auf dem Port 8.3 ein Signal kommt das sich die LED's
von Port 2 aufleuchten
bzw. ausgehen wenn kein Signal da ist.
Der Port scheint irrgendwie das Signal nicht war zu nehem ich hab schon
mit anderen Ports probiert,
aber das Problem ist das gleiche. Er erkennt nicht das da ein Signal
anligt.
Hab schon mit eine wait funktion versucht damit er bischien Zeit hat
nach der if Anweisung, aber klappt
auch nicht. Die Spannung kommt Direkt von Board also dürfte keine
Probleme mit Masse sein.

Ich hiff ihr könnt mir weiter helfen hab schon vieles probiert aber
momentan stehe ich auf den Schlauch.
Hier ist der C Code:

#include <mc167.h>

sbit DP83 = DP8^3;
sbit P83 = P8^3;

void main()
{
  int x=0;
  DP2=0xffff; // POrt 2 als Ausgabe
  P2=0x0000;  // Led´s leuchten
  DP83=0;    // Port 8.3 als Eingabe (Eingang)
  do{
      x=P83; // x ist der wert von P83
      if(x == 0)
      {
      P2=0xffff;
      }else
         {
         P2=0x0000;
         }
  }while(1)
}

Danke für jegliche Hilfe!

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein Signal ist das an P8.3?

Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nim die 5V von Board (VCC) und hab ein Schalter dazwischen.
Die 5V kommen auch an, am den Pin 8.3 aber passiert nix.

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian,

Hast auch einen pull-down an denn pin, oder nur denn 5volt über denn
schalter?

Wenn nicht hast du immer einen high level am pin!

Grüße Mark,

Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nix auf dem Pin außer dem Anschluss von Schalter.
Aber wenn ich aich dem die Leitung aus dem Pin wegziehe passier auch
nix.

Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ja auch das ODP83 Register aber ich weiss net was da genau
eingestellt wird. Aber steht nür über dem Output da.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch nen 8x51 derivat, wenn der als Eingang funktionieren soll dann
setze den Eingang nicht auf 0 und verdrahte den Schalter nach Masse,
dann läufts.

Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also soll ich nicht das VCC nehem sondern von den PIN auf dem Schalter
und von den Schalter auf Masse wenn ich des richtig verstehe??

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, und diese Zeile ändern:

  DP83=1;    // Port 8.3 als Eingabe (Eingang)

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Afaik ist DP das Port Direction Register. Wenn man eine '1'
hineinschreibt, ist der entsprechende Pin ein Ausgang. (Sorry, ist ne
Weile her, dass ich mit nem C167 gearbeitet hab...)

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Joe,

Es geht hier um denn SAB C167, das ist kein 8x51 derivat.

und mit DP83 = 1 => wird der pin als ausgamg geschaltet.

Grüße Mark,

Autor: rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian,

wie schaltest du am dem port 8.3. über einen pull-up-widerstand? so
würde ich das machen, das der schalter dann auf masse durchverbindet.

der port sollte so inizialisiert werden: variablennamen sind natürlich
beliebig.

sbit Ex_In =  P8^3;
sbit Ex_In_Dir = DP8^3;
sbit Ex_In_Open_Drain = ODP8^3;

und dann
Ex_In_Dir = 0; //pin is an input
Ex_In_Open_Drain = 1 //driver in open drain mode

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry folks, habs begriffen.

Autor: rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du was mit open drain mode anfangen?

       Vcc
        |
        |
       | | Rp - pull-up-Widerstand. z.b. 5kOhm.
       | |
        |
        |
Pin-----|
        |
        \ Schalter
        |
        -
        Ground

Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja klar ich kenn open drain. Alos wenn ich es so schalte dann
funktioniert es ?? Jetzt kann ich net prüfen aber Morgen früh werde ich
es wissen. HAb gedach mann kann direkt auf dem Pin gehen, aber da hab
ich mich wohl geirrt.
Danke Leutz

Autor: Marks Murks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achtung:

Der C167 Portausgang kann nicht direkt eine LED ansteuern, da der
Ausgangsstrom nicht ausreicht!

Autor: Sebastian Ki (sebik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke allen es hat geklappt es läuft alles !!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.