Kurze Frage: Kann man auch den Zustand von Ausgängen mit der PINx-Abfrage feststellen ? Oder geht das nur mit Eingängen ? Wenn ich das PORTx-Register abfrage habe ich ja nur den Inhalt des Ports. Absolute Sicherheit über den Zustand des Ausganges gibt mir doch nur das PINx-Register, oder ? Ob diese Abfrage überhaupt sinnvoll ist, ist hier übrigens NICHT Teil der Debatte. Ich habe folgendes versucht, aber es funktioniert nicht: LEDs an PC0, PC1 ATMegaxxx #include <avr/io.h> #include <util/delay.h> void delay_s(uint8_t sec) { uint16_t i=0, j=0; for(j=0; j<sec; j++) { for(i=0; i<1000; i++) _delay_ms(1); } } int main(void) { DDRC |= (1<<DDC0) | (1<<DDC1); PORTC |= (1<<PC0); PORTC &= ~(1<<PC1); while (1) { delay_s(1); PORTC ^= (1<<PC0); PORTC &= ~(1<<PC1); PORTC |= ((1 && (PINC & (PINC0)))<<PC1); } return 0; } Eine LED (PC0) sollte im Sekundentakt blicken (tut sie auch) und die andere LED (PC1) sollte es durch die Abfrage der anderen gleichtun. Tut sie aber nicht (ist nur ein Beispielprog). Ich brauche solch eine Abrage aber. Wie kann man das realisieren, was ist falsch am Programm ? Danke schon mal im voraus
> PORTC |= ((1 && (PINC & (PINC0)))<<PC1);
Diese Zeile solltest du dir nochmal genauer anschauen.
> Absolute Sicherheit über den Zustand des Ausganges gibt mir doch nur das > PINx-Register, oder ? Ja. > Wie kann man das realisieren, was ist falsch am Programm ? "PINC & (PINC0)" ist immer 0. "1<<" vergessen.
> Absolute Sicherheit über den Zustand des Ausganges gibt mir doch nur das > PINx-Register, oder ? Absolute Sicherheit gibt es nicht. BTW: Fragezeichen gehören, wie Punkte, zum letzten Wort im Satz. Dann passiert sowas nicht: > Kann man auch den Zustand von Ausgängen mit der PINx-Abfrage feststellen > ?
Danke, super. Funktioniert! @Lothar Miller: Beschränke Deine Aussagen auf das Thema. Klugscheißerei war nicht das Thema! Aber darin bist Du scheinbar ganz gut. Nächste mal schreib besser einfach nix. Oder Du meldest Dich in einem Forum für Deutschlehrer an. Gruß
Ich bin immer wieder erstaunt, wie schnell Leute eingeschnappt sind und persönlich beleidigend werden, wenn man ihnen einen gut gemeinten Rat zur Rechtschreibung oder Zeichensetzung gibt. Ist wohl ein wunder Punkt bei vielen. > Wenn ich das PORTx-Register abfrage habe ich ja nur den Inhalt des > Ports. Ja. > Absolute Sicherheit über den Zustand des Ausganges gibt mir doch > nur das PINx-Register, oder ? Wo sollte da jetzt der Unteschied sein? Ich könnte mir höchstens bei einem Kurzschluß am Ausgang vorstellen, daß die verschieden sind. > Ob diese Abfrage überhaupt sinnvoll ist, ist hier übrigens NICHT Teil > der Debatte. Naja, wenn du den Unterschied zwischen dem Lesen eines Ausgangs und dem Lesen des entsprechenden Eingangs wissen willst, kommt diese Frage doch eigentlich ganz von selbst ins Spiel.
Gast schrieb: > Beschränke Deine Aussagen auf das Thema. > Klugscheißerei war nicht das Thema! Recht frech, wenn man bedenkt, dass jemand anonym sich hinter einem Gast Zugang versteckt, nach Hilfe verlangt, diese bekommt, inklusive einem Tipp, dass die Rechtschreibung hier unter aller Kritik ist. Also einfach ein Danke hätte sicher auch gereicht... Michael
"Ob diese Abfrage überhaupt sinnvoll ist, ist hier übrigens NICHT Teil der Debatte." Warum nicht? Diese Abfrage macht nur dann Sinn, wenn PIN != PORT, ansonsten bekommt man nämlich exakt den Zustand des Ausgangs über das Lesen des PORT-Registers. Und das würde bei einem Ausgang einen Kurzschluss bedeuten - und das wiederum ist völlig sinnfrei, denn dann liegt definitiv ein massiver Fehler im Hardware-Design vor.
Das hat überhaupt nichts mit eingeschnappt sein zu tun. Aber hier geht es nun mal nicht um Orthographie. Das ist ein Elektronikforum. Verstecken tue ich mich auch nicht. Ob da nun ein Name steht oder nicht. Kennen tut man sich dadurch trotzdem nicht. Es gibt scheinbar viele Leute, die denken sie müssten aus einer Mücke einen Elefanten machen. Daher übrigens auch der Teil was hier NICHT Thema ist. Ich wollte nur eine einfache Antwort und die habe ich spätestens nach dem 2. Antwortthread erhalten. Nochmal danke an die Leute die sich auf das Thema konzentriert haben und so schnell geantwortet haben, anstatt der Philosophie zu erliegen. Philosophiert ihr mal weiter eure Themen, die die Welt nicht bewegen. Ach, noch was,... ich glaube in China ist gerade ein Sack Reis umgekippt. Wichtig,... oder ? Außerdem ist es gerade dieses Philosophieren, was die Suche nach der Lösung eines Problems manchmal echt anstrengend macht, da man diese nutzlosen Beiträge lange überspringen muss, bis man zu einer vernünftigen Antwort kommt. Gruß an alle
Marvin M. schrieb: > Warum nicht? > Diese Abfrage macht nur dann Sinn, wenn PIN != PORT, ansonsten bekommt > man nämlich exakt den Zustand des Ausgangs über das Lesen des > PORT-Registers. > Und das würde bei einem Ausgang einen Kurzschluss bedeuten - und das > wiederum ist völlig sinnfrei, denn dann liegt definitiv ein massiver > Fehler im Hardware-Design vor. Na ein Glück, dass niemand Fehler in seinen Schaltungen macht, schließlich wäre das ja völlig sinnfrei. ;) Zurück in der Realität: Bis auf ganz wenige, denen wahrscheinlich schon das Gras aus der Tasche wächst, machen alle Fehler - sowohl in ihrer Soft- als auch in ihrer Hardware. Es soll auch schon vorgekommen sein, dass Bauteile fehlerhaft sind. Und manchmal sind solche Fehler sehr schwer zu finden, treten nur sporadisch und kurz auf und da ist es ganz gewiss hilfreich, den (echten) Zustand des Ports herausfinden zu können. Mein Dank als unbeteiligter, aber interessierter Dritter an Stefan Ernst, der hier als Einziger eine vernünftige und konstruktive Antwort gegeben hat.
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.