Probleme mit UART - ATMega88 und STK500

Gast #2067527
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin dabei mir eine Seriell to SPI Platine zu basteln. Leider habe 
ich schon Probleme beim empfangen der seriellen Daten über die 
Schnittstelle des STK500.

Hier erst mal der Code:
1
#include <stdlib.h>
2
#include <avr/io.h>
3
#include <avr/interrupt.h>
4

5
#define FOSC 8000000//14745600 //Clock Speed
6
#define BAUD 9600
7
#define UBRR ((FOSC / (BAUD * 16L)) - 1)
8

9
volatile unsigned char data;
10

11

12
int main(void)
13
{
14
  /* PD1 als Ausgang */
15
  DDRD = 0x02;
16

17
  /* Aktivieren des Empfängers und des Daten leer-Interrupts */
18
  UCSR0B = (1<<RXCIE0) | (1<<RXEN0);
19

20
  /* baud rate*/
21
  UBRR0H = (unsigned char) (UBRR>>8);
22
  UBRR0L = (unsigned char) UBRR;
23

24
  /* frame format: 8data, 1stop bit*/
25
  UCSR0C = (1 << UCSZ01) | (1 << UCSZ00);
26

27
  sei();
28

29

30
  while(1)
31
  {
32
    ;
33
  }
34
   
35
}
36

37

38
ISR(USART_RX_vect)
39
{
40
  data = UDR0;
41
}


Es werden einfach keine Daten empfangen. Die Hardware und die 
Verbindungen sind in Ordnung, habe sie gerade mit einer anderen UART 
Software getestet. Was merkwürdig ist, wenn ich das TXEN0 und das UDRIE0 
Bit im UCSR0B Register setze und den UDRE Interrupt wie folgt in das 
obige Programm einsetze, funktioniert auch der Datenempfang.
1
ISR(USART_UDRE_vect)
2
{
3
  UDR0 = 'h';
4
}

Kann mir jemand sagen warum das so ist?
Gast #2067605
Lesenswert?
• ▲
▼
Ist nicht gesetzt. Sonst würde die Variante mit dem Senden ja auch nicht 
funktionieren.....

Versteh nur nicht was das Empfangen mit dem Senden zu tun hat, doch 
eigentlich nix..... sind doch zwei paar Schuhe..... Aber wenn ich sende 
klappt auch das empfangen.......

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.