Hallo, Ich habe folgende Frage: Kann ich bei einem at90can128 einen Pin als Tristate-Ausgang betreiben? tristate funktion: (A = mein Ausgangspin) (E,G Pins die zur verfügung stehen) E G A 0 0 Hi-Z 0 1 0 1 0 Hi-Z 1 1 1 Ich habe die Pin möglichkeiten als Bild mitgeliefert, wie muss ich die register beschalten, damit es funktioniert? Vielen Dank für Antworten, Darius
hm? steht doch da. Hi-Z: DDRx=0, PORTX=0 0: DDRx=1, PORTX=0 1: DDRx=1, PORTX=1
Hallo Simon, ja Du hast recht, aber wenn man den Ausgang z.B. über eine Switch case Anweisung verändern möchte, muss man im schlechten Fall zwei bits verändern, d.h. man bekommt einen zwischenzustand, denn man gar nicht haben will. deshalb meine verbesserte Frage, kann man es lösen, ohne zwei bits (im schlechtesten Fall) verändern zu müssen? Gruß, Darius
Was spricht gegen sowas hier? E G A 0 0 Hi-Z 0 1 0 1 0 Hi-Z 1 1 1
1 | switch(E) |
2 | {
|
3 | case 0: |
4 | PORTx = 0; |
5 | if (G) DDRx = 1; |
6 | else DDRx = 0; |
7 | break; |
8 | case 1: |
9 | if (G) |
10 | .
|
11 | .
|
12 | .
|
13 | break; |
14 | }
|
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.