1

Sonntag, 14. Dezember 2008, 11:53

Schaltdiagramm nachvollziehen

Hallo,
ich möchte gerne das "General Digital I/O (ATMEL AT90CAN128)"-Diagramm verstehen. Ich interessiere mich für 4 bestimmte Situationen

- Das Schaltbild mit den von mir eingezeichneten Wegen ist im Anhang.

Situation 1 [Grün,Schreiben]:
Der Befehl "DDRA |= _BV(PA0);" legt fest, das der PortA,Pin0 auf Ausgabe geschaltet wird.
Mit "PORTA |= _BV(PA0);" setze ich den Pin0 auf 1. Diese beiden Befehle müssten die grünen Weg nehmen?!

Situation 2 [Rot, Schreiben]:
Nur der Befehl "PORTA |= _BV(PA0);" verursacht den roten Weg, da standardmäßig die Richtung der Ports auf Input geschaltet ist?

Situation 3 [Blau, Lesen]:
PINA & _BV(PA0) verursacht das Lesen am PortA,Pin0 und damit wird der blaue Weg gegangen?!

Situation 4 [Braun, Lesen]:
Wie mache ich das und ist der Weg überhaupt so vollständig richtig?

Vielen Dank im Voraus.
Liebe Grüße
speedo
»speedo7« hat folgendes Bild angehängt:
  • DiagrammFragen.jpg

2

Sonntag, 14. Dezember 2008, 14:08

Die undurchschaubaren Wege des Stroms

Hi,

zu 1. grüner Weg: so isses:-)

zu 2. roter Weg: Pull-ups schalten

Wenn DDRX,0 wird der Pull-UP-Widerstand durch schreiben von PORTX,1 eingeschalten oder durch schreiben von PORTX,0 ausgeschalten.
Durch die zuschaltbaren Pull-Ups kann auf externe Pull-Ups oft verzichten.

zu 3. Grüner weg: richtig!

zu 4. Brauner weg: muss wird dann wohl das Lesen von PINX,x bei DDRX,1 sein

Gruß Sven

3

Sonntag, 14. Dezember 2008, 15:36

RE: Die undurchschaubaren Wege des Stroms

Zitat

Original von sven.stoecker
zu 4. Brauner weg: muss wird dann wohl das Lesen von PINX,x bei DDRX,1 sein


Das ist doch schon die Situation 3 [Blau, Lesen]?

4

Sonntag, 14. Dezember 2008, 19:25

RE: Schaltdiagramm nachvollziehen

blau ist lesen von PINX,x bei DDRX,x=0
braun ist lesen von PINX,x bei DDRX,x=1

entschuldigt bitte diese Pseudocode-Schreibweise, sonst wird es zu lang:-)

Gruß Sven

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »sven.stoecker« (14. Dezember 2008, 19:30)


5

Montag, 15. Dezember 2008, 09:12

RE: Schaltdiagramm nachvollziehen

Achso. klar :)

Jetzt bleibt mir noch noch eine Frage:
Situation 2 [Rot, Schreiben]:
Da schaltet der Pull-Up-Widerstand ja durch, das heißt die 5 V liegen an dem Kabel? Was passiert dann unten am Pinx? Welche werden beschrieben.

6

Dienstag, 16. Dezember 2008, 12:02

rot ist schreiben von PORTX,x bei DDRX,x=0

Damit werden die Pull-ups zugeschaltet. Das sind Widerstände gegen V+ die einen Eingang einen definierten Hi Pegel geben. Schließe mal einen Taster an Port gegen GND und frage den mal mit Pull-up und mal ohne Pull-up ab.
Viele Schaltungen benötigen Pull-ups. z.B. Logik-Schaltkreise mit Open-Kollektor-Ausgang, Taster:-), I2C... Da der AVR schaltbare Pull-ups integriert hat kann man oft auf externe verzichten.

Du wirst beim Schreiben von PORTX,x bei DDRX,x=0 Pegeländerungen am PORT messen obwohl DDR auf input steht.

Gruß Sven

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »sven.stoecker« (16. Dezember 2008, 15:27)


7

Dienstag, 16. Dezember 2008, 13:42

Danke euch allen. Ihr habt alles aufgeklärt ;)

8

Donnerstag, 18. Dezember 2008, 09:10

RE: Schaltdiagramm nachvollziehen

Hallo Speedo,
so nebenbei bemerkt, die Ports werden im BASCOM-AVR-Kurs , Teil 2 von KAINKA erklärt.
Falls Interesse, sende ich gerne diesen zu. (den Teil 2) ... nicht den kaina ...

Gruß Uwe