-
-
Erfahrener Benutzer
Roboter-Spezialist
Hallo,
nochmals danke für die Antworten.
Ich denke ich habe nun verstanden wie die Schaltung dort funktioniert:
Da der Schalter mit GND verbunden ist gibt die Abfrage von Pina.7 eine 1 zurück sobald der Schalter gedrückt, also der Stromkreis geschlossen ist.
Dem PortC.0 wird es darauf hin erst ermöglicht den Strom der von der Stromquelle kommt aufzunehmen da er auf High geschaltet wird, also eine Spannung da ist.
Ist das so korrekt? Wenn ja dann kann ich in Zukunft sehr gut darauf zurückgreifen. Ist das etwas Amtel / Atmega32 spezifisches oder funktionieren alle Microcontroler I/Os nach diesem Schema?
Leider kann ich das noch nicht ausprobieren da mir noch das Programmierkabel fehlt, aber sobald das da ist werde ich loslegen mit der Programmierung
Es grüßt,
Basteltisch
-
Erfahrener Benutzer
Roboter Genie
Nochmal nein.
Wenn der Schalter gedrückt wird, wird der PA7 auf GND gezogen, GND ist wenn du Pina.7 einliest eine 0.
Es geht hier nicht um Stromkreise, beim einlesen geht es nur um die anliegende Spannung.
Und das Programm rennt die ganze Zeit im Kreis (DO ... LOOP bildet hier eine Endlosschleife) und fragt diesen Pin ab.
Das Programm entscheidet darüber, wie PC0 dann konfiguriert wird.
Bei dem Beispielprogramm aus dem Wiki wird der PC0 auf High konfiguriert, wenn PA7 High eingelesen wurde. PA7 ist genau dann High, wenn der Taster das Signal nicht auf GND zieht.
Wurde PA7 als Low ausgelesen, ändert das Programm das Ausgangssignal für PC0 auf Low, das andere Ende der LED hängt aber an High, es fließt also in genau diesem Fall ein Strom der die LED zum leuchten bringt.
Ich hege den Verdacht, dass du dem Mikrocontroller zu viel Eigenintelligenz zuschreibst.
Der AVR (und jeder andere Mikrocontroller) tut genau das, was du ihm sagst.
Sagst du ihm, er soll einen Ausgangspin auf Low/High ziehen, stellt er intern eine Verbindung zwischen GND/VCC und dem Pin her. Wenn dabei ein Kurzschluss entsteht, stirbt (im besten Fall nur) der Pin.
Sagst du ihm, er soll einen Pin als Eingang benutzen, schaltet er nicht mehr direkt GND oder VCC an den Pin, sondern bietet nur noch die Möglichkeit, ihn nicht zu beeinflussen oder mit einem Pullup anzusteuern.
Sagst du ihm, er soll den momentanen Wert auslesen, tut er genau das.
Ferner solltest du ein wenig vom Stromkreisdenken wegkommen. Bei den Mikrocontrollern läuft viel nur mit Pegeln (High/Low), dass aus anliegenden Pegeln ein Stromfluss (wie bei der LED) folgen kann, ist für die Signalverarbeitung im AVR selbst weniger wichtig.
Wenn du Ausgänge schaltest, musst du primär wissen, dass du damit eben jene besagte Leitung nach GND oder VCC durchschaltest. Wie das dann die nachfolgende Schaltung beeinflusst, ist für den AVR erst einmal unwichtig.
mfG
Markus
-
Erfahrener Benutzer
Roboter-Spezialist
Hallo,
oh weia also bedeutet High auf der einen Seite und Low auf der anderen das Strom von High zu Low fliesst?
Also wird mit dem schliessen des Tasters das LOW auf A7 erzeugt da es nun mit GND verbunden ist?
Stimmt dies nun?
Ich habe zwar beruflich mit Anwendungsentwicklung zu tun, sogar speziell Basic devirate, aber in diesem Fall tue ich mich unterwartet schwer mit dem Verständniss.
Es grüßt,
Basteltisch
-
Erfahrener Benutzer
Roboter Genie
Hey, du redest schon wieder von Strom
Ja, High auf einer Seite (z. Bsp Pin eines AVR) und Low auf der anderen Seite (z.Bsp. GND) verursacht eine Spannung die zwischen den beiden Seiten anliegt, und damit kann also auch ein Strom fließen.
Und weiter richtig, Schließen wir den Taster, ziehen wir den PA7 auf LOW, korrekt. (Weil die Ladung am Portpin nach GND abfließt und der geringe Strom, den der Pullup im AVR abgibt ebenfalls).
Lässt man den Taster los, kann der Pullup den Pin wieder auf HIGH ziehen.
Der direkte "Kurzschluss" des Pins über den Taster hat keine weiteren Folgen, weil der Pullup mit ~50kOhm nur sehr wenig Strom fließen lässt.
Hätte man den Pin aber als Ausgang konfiguriert, würde der Pin direkt mit GND kurzgeschlossen, ein hoher Stromfluss würde den AVR (oder zumindest Teile von ihm) beschädigen oder zerstören.
mfG
Markus
PS: Sieh dir doch mal das Datasheet (nicht die Summary) unter Product Card ATMega32A an.
Auf Seite 50, Fig 12-1 siehst du, wie der Pin innen weiter verschaltet ist (zumindest der erste Teil).
Die ersten beiden Schaltzeichen (von links) sind Schutzdioden, die das Eingangssignal gegen VCC bzw. GND ableiten, wenn es über oder unter GND bzw. VCC steigt/fällt.
Cpin ist momentan uninteressant, aber das was danach als Rpu zu sehen ist, ist der schaltbare Pullup-Widerstand gegen VCC.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen