- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: mega168 - ICP vs. Port als Ausgang?!

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2005
    Ort
    Erfurt
    Alter
    59
    Beiträge
    134
    Anzeige

    E-Bike
    >Und wie unterscheidest du dann z.B. zwischen 2µs und 4µs-Pulsen?

    Das geht mit diesem Verfahren nicht,

    es wird nur 100%ig erkannt, dass ein Impuls vorhanden war

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    58
    Beiträge
    1.195
    @Sprinter: Laut Datenblatt (Mega16 ist es genau umgekehrt:
    12.2.1
    If PORTxn is written logic one when the pin is configured as an input pin, the pull-up resistor is activated. To switch the pull-up resistor off, PORTxn has to be written logic zero or the pin has to be configured as an output pin.

    ...

    12.2.4 Reading the pin value
    Independent of the setting of the Data Direction bit DDxn, the port pin can be readt through the PINxn Register bit. ...
    [/quote]

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Schon klar, aber man will die Pullups an den Ports doch nicht verändern. Also muss PORTX so geschrieben werden (zumindest für die nichtbetroffenen Bits) wie es war. Dazu liest man es einfach aus. PINX hingegen liest die Eingänge.

    Beispiel: PORTx=1, also ein IN mit Pullup. Dieser Port soll so bleiben, also nicht zu den Ports gehören, an denen ICP1 angezeigt werden soll.

    Nun lesen wir PINx, es sei 0.
    Schreiben wir nun 0 nach PORTx, wird der Pullup deaktiviert!!!

    Liest man stattdessen PORTx, liest man 1 und beim Schreiben ändert man der Wert des PORTx nicht (zumindest dieses Bits), was man hier haben will.
    Disclaimer: none. Sue me.

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    58
    Beiträge
    1.195
    Nein,
    wenn Du PORTx = 0 schreibst, wird nur der Pullup abgeschaltet, wie es im Datenblatt auch steht. Um den Port von Eingang auf Ausgang zu schalten müsste das Datenrichtungsregister beschrieben werden.

    IOPortX als Ausgang: DDRx = 0xff
    IOPortX als Eingang ohne Pullups: DDRx = 0x00; PORTx = 0x00;
    IOPortX als Eingang mit Pullups: DDRx = 0x00; PORTx = 0xff;

    IOPortX als Ausgang schreiben: PORTx = value;
    IOPortX als Ausgang lesen: value = PINx;
    IOPortX als Eingang lesen: value = PINx;

    Beim Lesen ist egal, ob der IOPort als Ausgang oder Eingang definiert ist. Es wird immer über das PINx Register gelesen.

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Üsch glaub, wir reden aneinander vorbei...

    Was passiert denn deiner Meinung nach, wenn der PU (=PullUp) aktiv ist (PORT=1) und wir an PIN eine 0 lesen?

    Was willst du dann nach PORT schreiben? 1 (wie es war) oder willst du ein einem Port, der nix mit der Ausgabe zu tun hat, an den PUs drehen?

    An PIN liest man den Eingang, richtig. Aber der Wert am Eingang interessiert ja gar nicht! Was interessiert, ist wie die PUs einzustellen sind. Und das liest (und schreibt) man via PORT.

    Oder man merkt sich ein einer Variablen, wie man die PUs einstehen hat (was aber mehr Overhead ist.)
    Disclaimer: none. Sue me.

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    58
    Beiträge
    1.195
    Das hatte ich auch schon vermutet (mit dem aneinander vorbei reden )

    Wenn's nur um die PUs geht hast Du natürlich recht.

  7. #17
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Um die PUs geht's doch, oder? bzw darum, daß sich an den nichtbeteiligten Ports nix ändert. Dazu müssenb die PUs gleich bleiben (falls es IN sind) bzw die Port-Werte müssen gleich bleiben (diese liest man auch via PORT, falls es OUT sind).
    Disclaimer: none. Sue me.

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress