Hallo, ich will einen Pin als Open-Drain schalten. D.h. bei einer logischen 1 soll dieser PIN auf GND durschalten und bei einer logischen 0 hochohmig sein. Wenn ich jetzt einen Pin folgendermaßen deklariere z.B. Pin4 an Port C PORTC.PIN4CTRL = PORT_OPC_WIREDANDPULL_gc; reicht das aus. Macht diese Zeile schon das, was ich vorhabe?? Danke für Antworten.
Ja, probier's doch aus! Der Pullup-Widerstand, der da eingeschaltet wird, ist für schnelle Signale mit ca. 60kOhm aber sehr hochohmig.
UUps, sehe gerade, dass es anders herum ist: 1 ist hochohmig, 0 ist GND. Das Bit zu invertieren sollte aber zu bewerkstelligen sein.
Der Pin wird GND ausgeben, wenn eine 0 im Portregister steht und wird freigegeben, wenn eine 1 im Portregister steht. Um Deine Anforderung zu erfüllen, musst Du zusätzlich das INVEN im PINxCTRL setzen. Dadurch kehrt sich aber auch das Eingangssignal um, falls Du es an dem betreffenden Pin nutzen willst.
:
Bearbeitet durch User
Jo, danke für die Antworten. Es ist wohl besser die Logik im Programm zu invertieren als den Pin.
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.