www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger: AVR-Tutorial, LED leuchtet nur schwach


Autor: Bernd S. (caveman)
Datum:

Bewertung
0 lesenswert
nicht 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.
.include "m16def.inc"       ; Definitionsdatei einbinden, ggf. durch
                             ; 2333def.inc ersetzen
 
         ldi r16, 0xFF       ; 0xFF ins Arbeitsregister r16 laden
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB ausgeben
 
         ldi r16, 0b00110000 ; 0b11111100 in r16 laden
         out PORTD, r16      ; r16 ins IO-Register PORTB ausgeben
 
ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife 

Was mache ich hier falsch?

Viele Grüße,
Bernd

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>out PORTD, r16      ; r16 ins IO-Register PORTB ausgeben

Was denn nun, Port B oder Port D?

Autor: Bernd S. (caveman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Port D meine ich, habe vergessen den Kommentar zu verändern (hab den 
einfach aus dem Beispiel übernommen)

Autor: Andrew (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Kommentar is ja wurscht, aber
>out DDRB   <- Hier Port B
>out PORTD  <- Hier Port D

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd S. (caveman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian Erker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:


.include "m16def.inc"       ; Definitionsdatei einbinden, ggf. durch
                             ; 2333def.inc ersetzen
 
         ldi r16, 0x60       ; 0x60 ins Arbeitsregister r16 laden
         out DDRD, r16       ; Inhalt von r16 ins IO-Register DDRD ausgeben
 
         ldi r16, 0x60       ; 0b01100000 in r16 laden
         out PORTD, r16      ; r16 ins IO-Register PORTD ausgeben
 
ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife 


Gruß,
Christian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.