- 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
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ähm sorry verschrieben. Ich meinte du musst den Pin auf Low setzen damit die LED an geht.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Ich habs gefunden. Der Fusebit bootrst musste raus (dissabled) damit er bei Addresse $0000 startet. Dann nochmal programmiert und nun leuchtet die LED.
    UFF

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ja wegen dem Bit startet er bei einer deffinierten Adresse, da dieses Bit für einen Bootloader da ist. Sonst würde man bei jedem programmieren den Bootloader überschreiben. Da der Controller bei dir aber so wie ich das verstanden habe, keinen Bootloader besitzt schreibt er das Programm ab Adresse 0000 in den Flash aber der Controller spricht diese nicht an

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

    ich will nicht unbedingt wegen jeder Sache einen neues Thema eröffnen, deshalb schreibe ich nochmal hier rein. Ich will den MPU aller x Minuten etwas machen lassen, also:

    unsigned int flag = 0;
    int main {
    TCCR0B |= (1<<CS02) | (1<<CS00); //setzt vorteiler auf 1024
    TIMSK0 |= (1<<TOIE0); //setzt Interrupt bit
    sei(); //aktiviert interrupt
    while (1)
    {do something if flag 3662}
    }
    ISR(TIMER0_OVF_vect)
    {
    flag++;
    }

    Nun funktioniert alles soweit gut, aber die Zeit stimmt nicht. Ausgegangen davon, dass der 2560er 16 MHz hat habe ich folgendes gerechnet:

    16000000 (MPU)/1024 (für vorteiler)/256 (Überlaufbit) = 61, ... pro Sekunde

    Das heißt mal 60 (für 1 Minute) müsste es 3662 mal durchlaufen um eine Minute zu erreichen. Nur sind es in Realität 50 Sekunden (etwa). Ich habe es schon mit 20MHz probiert aber da kommt zuviel bei raus (4578 = 1 Minute 8 Sekunen).

    Welchen Fehler habe ich in meiner Rechnung?

    Danke für die Hilfe

    Robert

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ist das der komplette Code? Wenn nicht zeig mal den kompletten.
    Oder nimm den 16bit Timer. Damit schärfste ganz genau 1 Sekunde bei 16MHz.
    Geändert von Kampi (31.08.2011 um 17:00 Uhr)

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    3662*60/50=4394,4?

    Sind die 16MHz intern?
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Davon gehe ich aus (dass sie intern sind). Es ist auch ein 16MHz Quarz und ein Uhrenquarz integriert, aber ich bekomme nicht heraus an welchem Port und für welchen timer.

    Den ganzen Code kann ich hier nicht rein tun, das sprengt das Forum. Wie tut man eigentlich Code in einer Box zum scrollen darstellen?

    Was meinst Du mit 3662*60/50=4394,4?

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    So war das gemeint (bei ungefähr 50 Sekunden für eine Minute):

    Code:
    while (1)
    {do something if flag >= 4394}
    }
    oder 4578*60/68
    Geändert von radbruch (31.08.2011 um 17:24 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

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

Berechtigungen

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

12V Akku bauen