Kommt wohl drauf an ob die LED bei
Portc.0 = 0 oder bei
Portc.0 = 1 leuchtet
wie ist sie denn angeschlossen ?
EDIT: die Wiki-schaltung hast du genau nachgebaut ?
Hi Leutz,
ich habe die Grundschaltung aus dem AVR-Tutorial im Wiki gebastelt und einen Quarz mit 8MHz verbaut. Danach wollte ich die LED an Pin22 an uns ausschalten - und zwar so, dass sie eine Sekunde an bleibt und danach 3 Sekunden aus ist. Also habe ich folgendes Programm geschrieben:
Soweit so gut, denn eigentlich sollte das Ergebnis das oben beschriebene sein. Allerdings macht mein Controller etwas ganz anderes: Er schaltet die LED für 3 Sekunden an und danach für eine Sekunde aus. Erst wenn ich die 1000 ms durch 3000 ersetze und die 3000ms durch 1000, dann erreiche ich das richtige Ergebnis.Code:$regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 8000000 Config Portc.0 = Output Do Portc.0 = 0 Waitms 1000 Portc.0 = 1 Waitms 3000 Loop End
Warum ist das so und was mache ich falsch? Wäre sehr sehr dankbar für eine schnelle Antwort, da ich meine Jahresarbeit für's Abi fertig schreiben muss und nun auf dieses unerklärliche Problem gestoßen bin.
Vielen Dank im Voraus!
Sven - Oliver
Kommt wohl drauf an ob die LED bei
Portc.0 = 0 oder bei
Portc.0 = 1 leuchtet
wie ist sie denn angeschlossen ?
EDIT: die Wiki-schaltung hast du genau nachgebaut ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
eigentlich so, wie in dem schaltplan (https://www.roboternetz.de/wissen/in...ung_mitled.gif) - Die Kathode ist an den Widerstand angeschlossen, die Anode an VCC.
Ich dachte, wenn ich Portc.0 = 0 schreibe, dass dort dann 0 V anliegen - folglich dürfte die LED doch dann nicht leuchten, oder?
kann es sein, dass das an der Potentialdifferenz liegt, sodass, wenn ich den Portc.0 = 0 schalte, die Potientialdifferenz 5V beträgt und die LED deshalb leuchtet?
In der Schaltung isses so, dass die LED leuchtet, wenn Portc.0 = 0
Probier's einfach:
Testprogramm
GegencheckCode:Config Portc.0 = Output Portc.0 = 0 ' leucht' sie nu oder nicht ? END
Code:-- Portc.0 = 1 ' leucht' sie nu oder nicht ? END
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
ja, gut, dass sie bei Portc.0 = 0 leuchtet, das habe ich ja schon festgestellt. Ich müsste nur wissen, warum das in der Schaltung so ist. Stimmt meine obige Vermutung oder liegt das an etwas anderem?
Ohne Umschweife: Deine Vermutung ist richtig
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Guck dir die Schaltung mal genau an: https://www.roboternetz.de/wissen/in...ung_mitled.gifja, gut, dass sie bei Portc.0 = 0 leuchtet, das habe ich ja schon festgestellt. Ich müsste nur wissen, warum das in der Schaltung so ist. Stimmt meine obige Vermutung oder liegt das an etwas anderem?
Die LED hängt zwischen 5V und Controllerpin. also geht sie an, wenn der Controller sie auf GND schaltet und das macht er wenn man den PIN auf 0 schaltet.
Wenn du den Pin auf 1 schaltest liegt er auf "high"-Pegel. Das heisst die LED hängt zwischen 5V und 5V und dann fliesst kein Strom der sie zum leuchten motivieren könnte.
Wenn du die LED (richtigherum) zwischen Controlerpin und GND hängst, leuchtet sie, sobald du den Pin auf 1 schaltest.
Das wird aber meist nicht so gemacht, weil der Controlerpin "angeblich" mehr Strom gegen Masse schalten als selber liefern kann.
"Angeblich" habe ich hier geschrieben, weil ich nicht sicher bin, ob das bei den aktuellen Controllern immer noch der Fall ist oder ob man es inzwischen nur noch aus Gewohnheit so macht.
alles klar - ich danke euch für eure Hilfe! Dann war meine Vermutung mit der Potentialdifferenz doch richtig und ich kann denen das jetzt auch plausibel erklärenwerde euch demnächst sicherlich noch mit weiteren fragen quälen - es gibt noch viel zu tun
Viele Grüße,
Sven
Lesezeichen