Ich möchte mit einer 0 schalten, da ich noch andere LED`s an meinem Controller habe und die ebenfalls mit 0 geschalten werden. Will halt später beim Programmieren nicht umdenken müssen... ;-)
Grüße!!
Bean
Druckbare Version
Ich möchte mit einer 0 schalten, da ich noch andere LED`s an meinem Controller habe und die ebenfalls mit 0 geschalten werden. Will halt später beim Programmieren nicht umdenken müssen... ;-)
Grüße!!
Bean
Wenn der Ausgang H ist leuchtet die LED wenn er L ist, ist die LED auch aus. Wäre so logischer, aber wenn du es anders gewohnt bist...
Wenn du mit einem PNP schaltest darf die Spannung an den LED nicht höher als VCC sein.
Edit: Die Spannung am Emitter des PNP nicht höher als VCC.
hi,
ich schalte auch meistens mit 0 ein, manche µc können dann größere strome vertragen.Zitat:
Wenn der Ausgang H ist leuchtet die LED wenn er L ist, ist die LED auch aus. Wäre so logischer
mfg jeffrey
Beim Programmieren lege ich mir immer Makros/Funktionen an, die die Ansteuerung von LEDs und sonstigen Ausgängen passend umsetzen. Ich muss mir dann nur noch merken, dass zb die rote LED mit ROTE_LED_AN; eingeschaltet und mit ROTE_LED_AUS; ausgeschaltet wird. Damit muss man sich nicht mehr merken, an welchem Pin und mit welcher Schaltungsvariante die LEDs angeschlossen sind. Und wenn man mal die LED woanders anschließen will, muss man nur an einer einzigen Stelle, nämlich im Makro, die Werte ändern. Würde man jedesmal den direkten Zugriff hinschreiben, könnte man bei einer Pin-Änderung sehr leicht eine Stelle vergessen, und schon passieren die merkwürdigsten Fehler...
Konkret sieht das in C dann so aus:
Die Befehle für die LED sind dann LED_red_on, LED_red_off, LED_red_toggle und LED_red_as_output.Code://Makros für eine LED. Anschlussvariante: LED vom AVR-Pin gegen Masse
#define LED_red PB2 //Pin, an dem die LED hängt
#define LED_red_PORT PORTB //PORT-Register
#define LED_red_DDR DDRB //DDR-Register
#define LED_red_PIN PINB //PIN-Register
#define LED_red_toggle PORTB ^=(1<<LED_red);//ändert den Zustand (zb nützlich zum Blinken)
#define LED_red_on LED_red_PORT|=(1<<LED_red);//einschalten (Pin auf high)
#define LED_red_off LED_red_PORT&=~(1<<LED_red); //ausschalten (Pin auf low)
#define LED_red_as_output LED_red_DDR|=(1<<LED_red); //Den Pin als Ausgang einstellen
Bei heutigen AVRs ist die Schaltungsvariante egal. Ich wählen sie meist so,, dass das Platinenlayout möglichst einfach wird.
Also ich habe mir das Einschalten einer LED mit 0 aus dem gleichen Grund angewöhnt wie jeffrey ;-) . Normal habe ich die LED`s mit einem Vorwiderstand direkt an dem Port. Also ohne Transistor.
Außerdem ist es nicht wirklich logisch oder unlogisch mit 0 einzuschalten... Ich denke es ist halt einfach Gewöhnungssache... ;-)
Grüße!!!
Bean
PS.: Jetzt brauche ich nur noch einen passenden SMD Transistor... *reicheltguck* :-)
Mit 1 K als Vorwiderstand ( ca. 3 mA Strom bei 5V) sollten die meisten Programmierer klarkommen, aber offensichtlich nicht alle.
Wenn das ein Parallelport-programmierer ist, würde ich mit überlegen einen 2.ten zu bauen, der etwas mehr Schutz für den PC bietet. Mit Treiberbaustein sollte dann die LED kein Problem mehr sein.
Nein, ist wie weiter oben geschrieben ein sehr einfaches serielles Programmiergerät. Das möchte ich eigentlich nicht ändern, da es bisher recht gut funktioniert und ich bis jetzt noch keine Probleme damit hatte. Also erstmal schauen was ich an der Schaltung noch machen kann.
Grüße!
Bean
Wo ist der? Wo steht das? Ich hab das in den RN - Definitionen nicht gefunden :(.Zitat:
Zitat von TheHawk
Ich habe bei meinen Flashboards den Reset-Pin vom ISP für die LED genommen - das geht gut. Über Störungen kann ich nicht klagen. Na ja, wenn ich dann die RES Taste am Board drücke, dann leuchtet die LED auch :( - aber damit kann ich leben :).
Die Programmer an der parallelen Schnittstelle habe schon eine LED vorgesehen, nur wer baut sich nur zum programmieren eine LED auf sein Board.
Auf pin 3 des 10 poligen ISP Steckers.