-
        

Ergebnis 1 bis 6 von 6

Thema: Atmega16 Uart interupt

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.08.2005
    Beiträge
    11

    Atmega16 Uart interupt

    Anzeige

    Hallo
    Nun habe ich erfolgreich bei meinen At M16 die Fusebits gesetzt und nun
    Läuft mein Programm vom 4433 in dem M16 .Leider Funktioniert das
    Empfagen auf der UART nicht wie im 4433 da läuft es ohne Probleme,
    gibt es denn da wieder was ich da bei dem M16 besonders einstellen muß
    ?
    Ich benute Bascom AVR

    Hier ein kleiner Auschnitt wie ichs gemacht habe :

    ist nur zum Testen. Quartfrequenz hab ich 7,3728 Mhz

    Hat vieleicht einer eine idee?

    MFG Wolfi

    On URXC OnRxD
    Enable URXC
    Enable Interrupts

    Main:
    If Len(s) > 9 Then
    Printbin s
    s = ""
    End If
    Goto Main

    OnRxD:
    s = s + Chr(UDR)
    Return

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Ich vermute mal, das die Fuses nicht stimmen (Frequenz). Die Fuses sind zwischen den beiden angegebenen µCs nicht indentisch, so weit ich mich erinnern kann. Hast du auch die Frequenz des Quarzes so dem Compiler angegeben?
    [$crystall=....]
    Und die Baudrate angegeben?
    [$Baud=.....]

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Hast du auch $regfile = "m16def.dat" eingefügt bzw auf das geändert?
    Alle nötigen Änderungen was das Handling von INT usw angeht sollte Bascom dann von sich aus machen.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Um die ganze Chip-, Fuses-, Quartz- und Baudraten- Problematik vom Tisch zu bekommen, versuch erst mal sowas :
    http://www.roboternetz.de/wiki/pmwik...sComVergleich2
    Nicht, daß das so schön wäre, aber wenn das funktioniert, kannst du sicher sein, daß alle Probleme nurmehr von deinem Programm her kommen und nicht von irgendwas oben genanntem.

    Ein Problem ist, daß sowohl Interrupt als auch MAIN-Loop die gleichen Variablen lesen und verändern. Sowas birgt einen hohen Unterhaltungswert und viele Überraschungen in sich.

    Vorschlag: Probier einmal Hello World und das Echo, und wenn das geht, sehen wir weiter.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Gast
    Hallo
    Das war wirklich was mit den Fuse bits hab ihn jetzt auf 4 Mhz intern gesetzt dun da funktionierts war mir aber sicher das er richtig auf externen Quarz gestellt ist . Aber mit der einstellung 1111;1111 funktionierts nicht . was soll ich den da einstellen ?

    MFG

    Wolfi

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Datenblatt Mega16 Seite 23:

    Table 2.
    Device Clocking Options Select(1) Device Clocking Option CKSEL3..0
    External Crystal/Ceramic Resonator 1111 - 1010
    External Low-frequency Crystal 1001
    External RC Oscillator 1000 - 0101
    Calibrated Internal RC Oscillator 0100 - 0001
    External Clock 0000

    Probier doch mal 1001

Berechtigungen

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