Anfänger: AVR-Tutorial, LED leuchtet nur schwach

OP #590214
Lesenswert?

Hallo,
bin neu hier und hab einen guten Eindruck von diesem Forum, viele 
hilfsbereite Mitglieder, viele gute Artikel ... einfach toll.

Ich will in die Mikrocontroller-Welt einsteigen und hab mir das 
Evaluationboard 2.0 von Pollin bestellt und auch scheinbar richtig 
zusammengebaut :-)
Ich verwende einen ATmega16. Das Testprogramm von Pollin konnte ich 
erfolgreich auf den Controller laden und es funktioniert einwandfrei.
Nun hab ich das erste ASM Programm aus dem AVR-Tutorial (entsprechenden 
Port für mein Board geändert) hochgeladen, aber die LED´s leuchten 
leider nur ganz schwach.
1
.include "m16def.inc"       ; Definitionsdatei einbinden, ggf. durch
2
                             ; 2333def.inc ersetzen
3
 
4
         ldi r16, 0xFF       ; 0xFF ins Arbeitsregister r16 laden
5
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB ausgeben
6
 
7
         ldi r16, 0b00110000 ; 0b11111100 in r16 laden
8
         out PORTD, r16      ; r16 ins IO-Register PORTB ausgeben
9
 
10
ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

Was mache ich hier falsch?

Viele Grüße,
Bernd
Gast #590239
Lesenswert?

>Port D meine ich, habe vergessen den Kommentar zu verändern
>out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB ausgeben

Na wenn Du Port D verwenden willst, muss es wohl auch

out DDRD, r16       ; Inhalt von r16 ins IO-Register DDRD ausgeben

heissen? Ich kenne dein Board nicht, und mein AVR-Assembler ist auch 
derzeit etwas eingerostet, sorry.
OP #590240
Lesenswert?

Es klappt jetzt :-)
vielen Danke für die schnellen Antworten....

Zum Verständnis:

Wieso leuchtet denn die LED schwach wenn ich das verwechsele?
Wird die LED irgendwie ständig an und ausgeschaltet? (da ich ja den Port 
D benutzt habe ohne vorher die entsprechenden Pins auf Ausgang zu 
schalten)

Gruß,
Bernd
Gast #590244
Lesenswert?

>Wieso leuchtet denn die LED schwach

Wenn Du den Port auf Eingang mit aktiven internem Pullup schaltest, und 
die LED zwischen diesem Port und Masse liegt, kann ein sehr kleiner 
Strom fließen, so das die LED glimmt. Nur eine Vermutung, kenne ja deine 
Schaltung nicht.
Gast #594931
Lesenswert?

Ich habe das Board auch ..

Die 2 LEDs hängen an PD5 und PD6. Er schaltet die Pullups an PD5 und PD4 
an, und nur den (völlig unbelegten) Port B auf Ausgang.

An den Threadersteller, vorausgesetzt es ist noch aktuell, probier mal:
1
.include "m16def.inc"       ; Definitionsdatei einbinden, ggf. durch
2
                             ; 2333def.inc ersetzen
3
 
4
         ldi r16, 0x60       ; 0x60 ins Arbeitsregister r16 laden
5
         out DDRD, r16       ; Inhalt von r16 ins IO-Register DDRD ausgeben
6
 
7
         ldi r16, 0x60       ; 0b01100000 in r16 laden
8
         out PORTD, r16      ; r16 ins IO-Register PORTD ausgeben
9
 
10
ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

Gruß,
Christian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren