-         

Ergebnis 1 bis 7 von 7

Thema: ATmega48 externer Quarz

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    11.03.2005
    Ort
    Kissing bei Augsburg
    Alter
    27
    Beiträge
    443

    ATmega48 externer Quarz

    Anzeige

    Hallo,

    um das ganze nun ein bisschen einzugrenzen und nicht ein neues Thema aufzumachen habe ich den Titel geändert. Es geht nun nur noch um den externen Quarz.
    Mein Programm schaut so aus:

    Code:
    $regfile = "m48def.dat"
    $crystal = 4000000
    $baud = 19200
    
    Dim I As Byte                                               'Byte: 0...255
    
    
    
    
    On Urxc Onrxd                                               'Interrupt-Routine setzen
    Enable Urxc                                                 'Interrupt URXC einschalten
    Enable Interrupts                                           'Interrupts global zulassen
    '---------------------------------------------------
    Do
    I = I
    Loop
    '---------------------------------------------------
    Onrxd:
    
      I = Udr
    
    
      Printbin I
    
     Return
    Wenn ich nun an den ATmega48 was sende kommen mehr oder weniger nur "schmierenzeichen" am Terminal raus. Baudrate ist auf 19200 eingestellt wenn ich aber nun die Baudrate auf 1200 einstelle geht alles. Ist das so richtig?
    Ach ja in Bascom habe ich bei den Fuse Bits das Fusebit für den Quarz auf 0000 (= external Clock) gestellt. Ich verwende ja einen externen 4 Mhz Quarzoszillator.

    Hoffe ihr könnt mir helfen.

    mfg
    Michael

    PS: Die nächsten Antworten beziehen sie noch auf das alte Thema:
    ATmega48 Quarz PWM AD-Wandler UART welche Fuse und Lock Bits
    also einfach am schluss Antworten

    Hallo,

    wie schon der Name sagt: Ich weiß nicht welche Lock und Fusebits ich setzten muss. Ich möchte keine Flaschen setzten nicht das er dann am ende sich nicht mehr Progrmmieren lässt.
    Mein Problem ich möchte so ziemlich alles auf einmal nutzen am ATmega48 d.h. Uart, PWM, AD-Wandler, externer Quarz EEprom RAM und so weiter. Was muss ich wo an und ausschalten damit ich nichts kaputt mache? Gehen überhaupt alle Funktionen gleichzeitig?
    Das ganze möchte ich über Bascom machen kann aber auch ein anderes Programm sein.

    mfg
    Michael
    Besuch mal meine HP: www.highcurrent.de

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    LockBits als normaler User nicht anfassen, denn sonst ist der Zug abgefahren

    Ob und wie man die Funktionen eines AVR verwendet, ist nicht von den Fusebits abhängig, zumindest die, die da aufgezählt sind. Das wird alles per Software erledigt, die Du selber schreibst. Die einzige Einschränkung die es noch gibt, ist, das bestimmte Funktionen den gleichen Pin eines AVR verwenden, in diesem Fall kann man immer nur eine Funktion davon verwenden. Deshalb sollte man immer das Datenblatt danebenliegen haben, Belegung ist immer auf der 2. Seite.

    Wenns ein externer Quarz sein soll, sollte der AVR schon mit einem solchen verbunden sein, damit es nach dem umstellen der Fuses gleich weitergehen kann.
    Im Bascom ist das schön beschrieben, als Klartext, welche Fuses man dafür verwendet. Zusammengehörige Fuses sind auch zusammengefasst, sodaß man sie leichter findet.
    Je nach AVR muss/kann man noch das JTAG-Bit umstellen, damit der entsprechende Port frei wird. Gibts aber jetzt beim Mega48 nicht.

    Die anderen Fusebits würde ich anfangs nicht anlangen, denn da sperrt man sich nur aus, und kommt evtl. nimmer rein.
    Ausprobieren was ein Fusebit macht ist auch keine gute Idee [-X

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    11.03.2005
    Ort
    Kissing bei Augsburg
    Alter
    27
    Beiträge
    443
    Ok ich habe gestern noch ein bissel gespielt und festgestellt das der den internen 8mhz quarz an hat ich möchte aber einen externen 4mhz quarz.
    naja kann auch der interne sein wie muss ich dann das programm dazu schreiben? momentan für einen 4mhz quarz extern mache ich das so: $crystal = 4000000 und wie bei dem internen? einfach: $crystal = 8000000?

    mfg
    Michael
    Besuch mal meine HP: www.highcurrent.de

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Mit dem $crystal gibts Du nicht an wie Du es gerne hättest, sondern hier wird dem Compiler mitgeteilt wie schnell der AVR in Wirklichkeit ist damit er die Berechnung für die Timer richtig vornimmt.
    Theoretisch kannst du dort angeben was Du willst, mit der Einschränkung, das zB. die Übertragung per UART nicht mehr richtig funktioniert !
    An der Einstellung im AVR kann man damit nix ändern.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    11.03.2005
    Ort
    Kissing bei Augsburg
    Alter
    27
    Beiträge
    443
    hallo,

    ok angenommen ich lasse den 8mhz internen quarz an dann muss ich doch $crystal = 8000000 inschreiben oder? müsste doch dann rein teoretisch gehen oder?

    mfg
    Michael
    Besuch mal meine HP: www.highcurrent.de

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.07.2006
    Ort
    Mannheim
    Beiträge
    454
    8mhz (8 Milliherz)????????????????

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    11.03.2005
    Ort
    Kissing bei Augsburg
    Alter
    27
    Beiträge
    443
    sorry ich meine 8Mhz

    mfg
    Michael
    Besuch mal meine HP: www.highcurrent.de

Berechtigungen

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