Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega8 rx interrupt
sg10241024
20.11.2005, 03:11
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
Du hast was vergessen;
#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:
SIGNAL(SIG_UART_RECV)
{
}
Vllt. ist das bei Codevision ja auch anders
SprinterSB
20.11.2005, 13:31
So weit sehen die Bits ok aus.
// 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).
linux_80
20.11.2005, 13:32
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.
versuch mal das vor deine "while Endloßschleife" im Hauptprogramm zu schreiben:
#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 ...)
sg10241024
20.11.2005, 18:02
hatte vergessen die interrupts global anzuschalten
vielen Dank
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.