Hallo, ich habe mir das STK500 gekauft und habe beim Programmieren eines ATMega8 komische Ergebnisse erziehlt. Der Simple Befehl DDRB |= (1<<PB0); sorgt dafür, dass die entsprechende LED aufleuchtet. Wenn ich die LED per PORTB |= (1<<PB0); zum leuchten bringen will, geht sie aus, und per PORTB &= ~(1<<PB0); geht sie wieder an. Irgendwie scheint hier etwas nicht zu stimmen. Hat vielleicht jemand eine Idee woher der Fehler stammen könnte? Viele Grüße und vielen Dank
>Der Simple Befehl DDRB |= (1<<PB0); sorgt dafür, dass die entsprechende >LED aufleuchtet. Wenn ich die LED per PORTB |= (1<<PB0); zum leuchten >bringen will, geht sie aus, und per PORTB &= ~(1<<PB0); geht sie wieder >an. So soll es sein! >Irgendwie scheint hier etwas nicht zu stimmen. Und was? >Hat vielleicht jemand eine Idee woher der Fehler stammen könnte? Welcher Fehler? Ich rate mal: Du erwartest, das eine 1 die LED zum leuchten bringt und eine 0 sie erlöschen lässt. Richtig? Dann ein kleiner Tip: Schau mal im Schaltplan wie die LEDs am Portpin angeschaltet sind.
OK, ich schaue mal rein... Habe erwartet, dass eine 1 die LED einschaltet und eine 0 sie löscht. Super, dass ich so schnell eine Antwort bekommen habe.
Hallo, ich habe mir das Datenblatt angesehen und das Problem gefunden. Hätte das aus dem Gefühl anders herum erwartet, ist aber auch OK, jetzt wo ich das weis. Vielen Dank
>Hätte das aus dem Gefühl anders herum erwartet,... Nun, das ist verständlich, denn es liegt sicher nahe die Gedanken so zu verketten, das eine 1, wahr, eine leuchtende LED bedeutet. Wie Dir hier vorgeführt wird, ist diese Festlegung absolut willkürlich und richtet sich in der Praxis nach den Gegebenheiten wozu auch der uC selbst gehört. Der kann nämlich mehr Strom nach GND ableiten als von VCC liefern.
naja, das ist nur ein Relikt aus vergangenen TTL-Zeiten. Bei moderner CMOS-Technolgie ist das so gut wie symmetrisch. Aber wenn man es weiss, wann die LED leuchtet, ist es ja egal.
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.