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!
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.
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,
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.
Es gibt ja auch das ODP83 Register aber ich weiss net was da genau eingestellt wird. Aber steht nür über dem Output da.
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.
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??
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...)
@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,
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
Kannst du was mit open drain mode anfangen? Vcc | | | | Rp - pull-up-Widerstand. z.b. 5kOhm. | | | | Pin-----| | \ Schalter | - Ground
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
Achtung: Der C167 Portausgang kann nicht direkt eine LED ansteuern, da der Ausgangsstrom nicht ausreicht!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.