Forum: Mikrocontroller und Digitale Elektronik Probleme mit UART - ATMega88 und STK500


von Tim (Gast)


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?

von spess53 (Gast)


Lesenswert?

Hi

>Es werden einfach keine Daten empfangen.

Wie kannst du das bei dem Programm erkennen?

MfG Spess

von Tim (Gast)


Lesenswert?

Über das JTAGICEmkII.......

von Joachim B. (jojo84)


Lesenswert?

Was ist mit dem CKDIV/8-Fuse?

von Tim (Gast)


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.......

von Thomas E. (thomase)


Lesenswert?

Tim schrieb:
> Versteh nur nicht was das Empfangen mit dem Senden zu tun hat, doch
>
> eigentlich nix..... sind doch zwei paar Schuhe.....

Gar nichts.

Ist im Compiler der richtige Controller eingestellt? Die Einstellung des 
JTAGICE ist unabhängig davon.

mfg.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.