PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zum Wiki. Pin. Port und DDR



Lordcyber
21.03.2008, 23:15
Hallo,
also mal angefangen:
Als Grundlage ist immer der Atmega8.
Im Wiki steht unter AVR-Einstieg leicht gemacht:


Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)

Config Pina.7 = Input 'Ein Pin (PA0) wird als Eingang definiert
Porta.7 = 1 'Interner Pullup Widerstand ein
Aber heißt es nicht das Pina.7 = Anschluß PA7 ist???
Da steht als Kommentar das es PA0 ist, ist das nicht Falsch oder verstehe ich das Falsch??

Was passiert wenn ich Pina.7=Output schreibe.
Also was ist der Unterschied zwischen geschrieben Pin und Port???

DDRD = &B10000000
Bedeutet doch das ich PD0 auf Ausgang schallte alle anderen Input oder??

for_ro
21.03.2008, 23:39
Config Pina.7 = Input 'Ein Pin (PA0) wird als Eingang definiert
Porta.7 = 1 'Interner Pullup Widerstand ein[/code]
Aber heißt es nicht das Pina.7 = Anschluß PA7 ist???
Da steht als Kommentar das es PA0 ist, ist das nicht Falsch oder verstehe ich das Falsch??

Ja klar, dass ist natürlich PinA.7, der da als Eingang konfiguriert wird.


Was passiert wenn ich Pina.7=Output schreibe.
Du meinst wohl Config Pina.7 = Output ?
Damit setzt du dass Data Direction Register von PortA, Bit 7 (DDRA.7) auf 1, also Output.


Also was ist der Unterschied zwischen geschrieben Pin und Port???
Die Sache mit den Pinx und Portx sieht am Anfang immer etwas seltsam aus. Der Punkt ist, dass du eigentlich immer Portx (also z.B. Porta) schreiben kannst, mit einer Ausnahme:
Wenn du einen Anschluss als Eingang konfiguriert hast und möchtest jetzt wissen, welches Signal von außen anliegt, dann musst du Pinx schreiben, also z.B.

If PINA.0 = 1 Then ... oder
MyByte=PINA


DDRD = &B10000000
Bedeutet doch das ich PD0 auf Ausgang schallte alle anderen Input oder??
Die zählweise ist genau anders herum, PD0 ist ganz rechts, also musst du schreiben

DDRD= &B00000001 um PD0 auf Ausgang und alle anderen auf Eingang zu belassen (Eingang ist der Default nach dem Start)

Gruß

Rolf

Lordcyber
21.03.2008, 23:48
Also ist es unter der Config egal ob Pin oder Port??

Ist dann der Kommentar in der Wiki Falsch???
Puh da bin ich aber Froh dachte schon ich währe zu Blöd das zu Kapieren.
Das sollte mal einer im RN Wissen Wiki ändern

pmaler
22.03.2008, 06:33
Bin ich froh, dass es nicht nur mir so geht.

Am Anfang bin ich auch mit Pin und Port durcheinander gekommen.
Zum Glück meckert Bascom sofort, wenn man es falsch schreibt und der Prozessor stellt sich auch nicht gleich tot, wenn man die Pins vertauscht.

Versuche dir ein Testboard zu bauen oder eins zu kaufen. Dann kann man mit einer (oder mehreren) LED´s (immer mit Vorwiderstand) testen ob man auch den richtigen Anschluß erwischt hat. Mein Selbstgeschnitzes auf Streifenraster (Schau auf meine Homepage) liegt sogar jetzt vor mir, obwohl ich wegen Arbeit im Moment nicht dazu komme.

Zumindest am Anfang vertauscht man gerne die Anschlüsse.

Und mit 0 Anfangen und das ganze von Rechts beginnen ist ja nicht jedermann in der Muttermilch mitgegeben worden.

for_ro
22.03.2008, 09:27
Und mit 0 Anfangen und das ganze von Rechts beginnen ist ja nicht jedermann in der Muttermilch mitgegeben worden.

Das Problem ist, dass wir mit dem Zehner-Zahlensystem wie selbstverständlich umgehen. Dabei sind die Regeln exakt die gleichen wie in jedem anderen Zahlensystem. Dumm nur, dass wir versuchen, z.B. beim Binärsystem bewusst mit etwas umzugehen, was wir beim Zehnersystem automatisch tun.

Wenn wir die Bits von 0-7 nummerieren, dann weil das 0-te Bit für die Wertigkeit 2º steht, das 1-te Bit für 2¹ usw.
Beim Zehnersystem entsprechend 10º, 10¹ usw.
Die kleinstwertige Stelle steht dabei immer rechts, die größte links.

Klaro?

Gruß

Rolf

Lordcyber
22.03.2008, 09:29
Hallo,
Habe ja bisher nur mit den Beispielen gearbeitet.
Daher ist mir das nicht aufgefallen.
Erst jetzt wo es an das eigenen geht.