- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 19

Thema: RN-Mega2560 blaue LED an PortD5 zum leuchten bringen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24

    RN-Mega2560 blaue LED an PortD5 zum leuchten bringen

    Hallo,

    ich habe das RN-Mega2560 und möchte mit etwas einfachem anfangen. In der Anleitung steht, dass die blaue LED auf dem Board leuchtet, wenn PortD5 auf low ist. Also habe ich eingetragen:

    #include <avr/io.h>

    int main(void)
    {

    PRR1 = 0xFF;
    DDRD = 0x00;
    PORTD = 0x00;
    while(1)
    {
    }
    }

    PRR1 habe ich auf high gesetzt, weil ich gelesen habe, dass PortD5 auch als XCK1 (Clock) für Usart1 dienen kann und high in PRR1 schaltet die Usarts aus.

    Trotzdem bekomme ich ein blaues Leuchten.

    Was könnte verkehrt sein?

    Danke.

    Grüße

    Robert

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    49
    Beiträge
    1.146
    Du hast den Port als Eingang konfiguriert. Um PD5 als Ausgang zu konfigurieren, musst Du DDRD auf 0x20 setzen. PRR1 musst Du nicht setzen, nach einem Reset sind die alternativen Port-Funktionen immer ausgeschaltet.

    Gruß,
    askazo

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Du sagst die LED leuchtet wenn der Pin low ist. Mit DDRD = 0x00 schreibst du ins Data Direction Register von Port D 0000 0000 rein, was bedeutet das der komplette Port als Eingang konfiguriert ist. Desweiteren setzt du mit PORTD = 0x00 den kompletten Port D auf low. Und wenn du sagst das die LED bei einem Low an dem Pin leuchtet, ist es klar das sie leuchtet wenn du den kompletten Port auf 0 setzt
    Wenn du die LED ausschalten willst musst du erstmal den Port als Ausgang konfigurieren wie es oben steht und dann schreibst du noch:

    PORTD = 0x020;

    Damit schreibst du in dem 5. Bit von dem Port D Register eine 1 und damit deaktivierst du die LED. Die LED auf dem Board ist "Active Low" geschaltet d.h. sie ist Aktiv wenn der Pin wo sie angeschlossen ist low ist. Im Umkehrschluss musst du den Pin also High setzen um sie zu deaktivieren.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Hallo,

    danke für die Antworten. Ich habe das Programm entsprechend geändert, aber die LED leuchtet immer noch nicht (ich möchte das sie leuchtet):

    #include <avr/io.h>

    int main(void)
    {

    DDRD = 0x20;
    PORTD = 0x00;
    while(1)
    {
    }
    }

    Ich habe auch schon das Programm wieder ausgelesen aus dem Chip und mit der HEX datei verglichen, die ich reichgeschrieben habe, es ist die gleiche.

    Ich habe auch schon PIND7 (welcher keine anderen Funktionen hat) mit:

    DDRJ |= (1<<PJ7);
    PORTJ |= (1<<PJ7);

    auf Ausgang und High gestellt. Damit müsste ich 5V an dem Ausgang abgreifen können, aber es haut nicht hin.

    Müssen irgendwelche Fusebits angepasst werden, wenn man über ISP programmiert? Kann sonst was falsch sein? Ich gebe nur 5V und GND auf die Platine, sonst nix.

    Danke.

    Grüße

    Robert

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Du musst auch schon den Pin High setzen damit die LED aus geht.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Wir missverstehen uns glaub ich. Die LED soll an sein, nicht aus.

Ähnliche Themen

  1. PIC in Programmiermodus bringen?
    Von katze117 im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 06.05.2010, 21:53
  2. Wie Halogenlampen leuchten lassen?
    Von Jacob2 im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 29.03.2008, 12:17
  3. Amega32 es leuchten nur 4LED's
    Von m.defi im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 13.02.2008, 16:27
  4. Diode mit Pc zum Leuchten bringen (kein Plan)
    Von MischaMV im Forum Elektronik
    Antworten: 35
    Letzter Beitrag: 12.03.2005, 17:30
  5. blaue segmentanzeigen
    Von krist0f im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 13.06.2004, 02:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test