atmega 128 empfängt keine daten über uart

Gast #569580
Lesenswert?
• ▲
▼
ich habe einen atmega128 und will daten empfangen und senden.
hierzu nutze ich den USART0, leider wird weder der receive-interrupt 
ausgelöst noch wird das RXC-bit auf 1 gesetzt.
hier mein code:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include "usart.h"
4
int usart0_rec =0 ;
5

6
void usart_init0(int baut0_H, int baut0_L) {
7

8
    UCSR0A = 0x00;      /* USART operates at normal speed */
9
    UCSR0B = (  (1<<RXCIE) | (1<<RXEN)|(1<<TXEN));    /* Enable receiver */
10
    UCSR0C = (  (0<<UMSEL) |  /* Configure for asynchronous operation */
11
        (0<<UPM1)  |  /* No parity */
12
        (0<<UPM0)  |
13
        (0<<USBS)  |  /* 1 stopbit */
14
        (1<<UCSZ1) |  /* 8 data bits */
15
        (1<<UCSZ0));
16
        UBRR0H=baut0_H;
17
        UBRR0L=baut0_L;
18
}
19

20
void usart_put0(int data0) {
21
        while (!(UCSR0A & 0x20));
22
        UDR0=data0;
23
}
24
int usart_get0(void){
25
        return usart0_rec;
26
        //return UDR0;
27
}
28
SIGNAL(USART0_RX_vect){
29
        usart0_rec=UDR0;
30
}


der atmega läuft auf 16MHz und das senden funktioniert fehlerfrei.

hier noch die fuses:
Atmel AVR ATmega128 is found.

Fuse Low Byte      = 0xe0
Fuse High Byte     = 0x99
Fuse Extended Byte = 0xff
Calibration Byte   = 0xc5  --  Read Only
Lock Bits          = 0xff
    BLB12 -> 1
    BLB11 -> 1
    BLB02 -> 1
    BLB01 -> 1
      LB2 -> 1
      LB1 -> 1

ich hoffe das mir jemand helfen kann alle lösungen aus dem forum haben 
mir nicht geholfen.
#569598
Lesenswert?
• ▲
▼
Zwischenfrage:
Wer oder was hängt am anderen Ende der Leitung (Also: wer sendet
eigentlich?)

Hintergrund: Wenn das ein PC mit zb. Hyperterminal ist, dann ist
eine beliebte Falle, dass vergessen wurde das Hardware Handshake
am PC abzudrehen. Wenn dann gleichzeitig im Kabel die Handshake
Leitungen nicht für diesen Fall verschaltet sind, dann sendet
in so einem Fall der PC ganz einfach nicht.

Wie in so einem Fall das Kabel verdrahtet sein muss, findest
du zb. hier
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART
Gast #569892
Lesenswert?
• ▲
▼
hallo,
tja für mich sieht das nach dem schauen in der doku erstmal recht fit 
aus.

probier doch mal, das TXCIE0 auch zu setzen. das senden ging ja, wie du 
sagst. funktioniert die ISR, sollte dein port beim senden auf high 
gehen.

bye kosmo
Gast #570161
Lesenswert?
• ▲
▼
hallo,
bin kein mega128-experte, vll findet sich da ja noch wer. ich tippe aber 
einfach auf nen hardware-fehler, in der verkabelung möglicherweise. bin 
am ende mit meinem latein soweit.
bye kosmo
Gast #571608
Lesenswert?
• ▲
▼
Hallo Oni kannst du mir deine quelle code senden (die vollständige 
quelle code)
weil ich das selbe problem habe (ich will daten senden und empfangen) 
aber es fonctinniert nicht. ich sehe hier das du schon einige schritt 
gemacht hast.
ich bedanke mich voraus
pascal

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren