-         

Ergebnis 1 bis 6 von 6

Thema: atmega8 rx interrupt

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.10.2004
    Beiträge
    20

    atmega8 rx interrupt

    Anzeige

    Hallo,

    ich habe große Probleme mit dem Atmega8 und dem RX Interrupt.
    Leider funktioniert es nicht. Ich programmiere mit codevision.

    Ich benutze einen Quarz mit 8 MHz. Die fuses sind auf mittlere Frequenz eingestellt.
    Als Baudrate benutze ich 38400.

    Vielleicht kann mir jemand sagen, wo der Fehler liegt. Compilieren funktioniert fehlerfrei.

    Danke
    Sarah
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.08.2005
    Ort
    49.80248 8.59252
    Alter
    33
    Beiträge
    172
    Du hast was vergessen;
    Code:
    #include <stdlib.h>
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    Ob die Register gesetzt sind hab ich nicht ueberprueft da mit Hex in Binaer umwandeln zu muehsam ist. (Ja ich hab auch einen Taschenrechner der das kann )

    Das mag wohl auch an Codevision liegen, aber beit mir schaut eine INTRoutine so aus:
    Code:
    SIGNAL(SIG_UART_RECV)
    {
    }
    Vllt. ist das bei Codevision ja auch anders

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    So weit sehen die Bits ok aus.

    Code:
    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud rate: 38400
    UCSRA=0x00;
    UCSRB=0x98;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x0C;
    Wenn du den Überblick behalten willst, dann vermeide diese ganzen magischen Zahlen, das blickst du ruck-zuck nicht mehr.

    Falls es automatisch generiert wurde ist es Schrott, weil die Kommentare nicht dazu passen.

    Wenn du Interrupts haben willst, musst du diese ermöglichen (I-Flag in SREG).
    Disclaimer: none. Sue me.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    abgesehen von dem was kater schon geschrieben hat,
    es müssen global alle Interrupts aktiviert/erlaubt werden,
    das sehe ich jetzt auf die schnelle nirgends,
    ob diese ISR-bezeichnug auch den richtigen Interrupt abarbeitet, kann ich nicht sagen.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    29
    Beiträge
    194
    versuch mal das vor deine "while Endloßschleife" im Hauptprogramm zu schreiben:
    Code:
    #asm("sei")
    ansonsten müsste es denke ich funktionieren ...

    @kater
    Die Include-files(avr/io.h,...) brauchst man im Codevision nicht ...(Das ganze AVR-Spezifische steht in mega8.h drin ...)

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    15.10.2004
    Beiträge
    20
    hatte vergessen die interrupts global anzuschalten

    vielen Dank

Berechtigungen

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