Hallo leute, ich hab eine LED an einem Atmega8 angeschlossen,die funktioniert einwandfrei mit dem testprogramm. nun will ich dass die LED im standard zustand leuchtet,solang man das board an Strom anschließt. 1.wenn kein programm aufm MC drauf ist soll sie leutchen. 2.wenn ein programm drauf ist soll sie das machen,was aufm programm ist. geht sowas überhaupt?wenn ja wie? vielen dank im voraus.
Wenn kein Programm ausgeführt wird, ist der Pin hochohmig. Das kann man mit ein bisschen Hirnschmalz detektieren.
sry,ich bin neu aufm gebiet :) soll ich einfach eine große widerstand benutzen?
Am einfachsten machst du es so:
1 | ____R1 R2 _______ LED |
2 | [+5V]------|____|-----+-----|_______|----|>|---[GND] |
3 | | |
4 | | |
5 | | |
6 | V PIN des Atmega |
R1 und R2 sollten dann jeweils Widerstände mit etwa 500 Ohm sein. Definierst du den Pin als Ausgang und schaltest ihn low, dann fließt der Strom in den Mikrochip. Definierst du den Pin als Tristate, fließt der Strom durch die LED. Ich würde dann folgendermaßen vorgehen: PORT-Bit des Pins dauerhaft auf low setzen, und da bleibt es! Geschaltet wird dann folgendermaßen: DDR des Pins = 1 (Ausgang): LED an DDR des Pins = 0 (Eingang): LED aus Du kannst den Widerstand nach dem Pin auch weglassen. Dann musst du aber darauf achten, NIEMALS den Pin als Ausgang, High zu betreiben. Sonst zerstörst du irgendein Bauteil. (Sonst betreibst du die LED ohne Vorwiderstand, die Suchmaschine deines Vertrauens liefert nähere Details)
sry aber,ich will dass die LED ohne programm leuchtet,ohne irgendwelche PINs oder Ports auf low oder high zu stellen. aber wenn ein programm aufm MC drauf ist,dann soll sie das machen was das programm will.
Die ganze Aufgabenstellung ist bescheuert. Denn den Zustand 'kein Programm auf dem MC' gibt es nicht. Ein µC arbeitet immer ein Programm ab sobald er am Strom hängt. Im Defaultzustand macht das Programm nichts vernünftiges, aber sobald du das erste mal etwas in den µC gebrannt hast, dann ist da ein Programm drinnen.
Guck dir ma den post von LED-Typ genau an, wenn du nichts merkst lasses bleiben ;) die LED brennt wenn der PIN weder als ausgang noch als eingang geschaltet ist, Youngheart schrieb: > 2.wenn ein programm drauf ist soll sie das machen,was aufm programm ist. darum schreibt er dir eine empfehlung wie ers machen würde
Man könnte sich eine Aufgabenstellung ausdenken... "Eine (Fehler)-LED soll leuchten, wenn sich der AVR im RESET (=> ISP, Brownout oder Watchdog oder falsche Firmware) befindet." Technisch geht es darum, die LED so anzuschliessen, dass ein Pin im Tristate die LED leuchten lässt und bei laufendem AVR die Firmware diesen Pin so schaltet, dass die LED verlischt. Die Lösung von LED-Typ ist IMHO dafür geeignet.
In etwas sowas? So lange der Pin nicht beschaltet ist ist die LED an. Um sie aus zu machen musst du den Pin als Ausgang und auf High stellen.
Vielleicht noch nen großen R von der Transistorbasis nach GND.
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.