UART sendet nur punkte bzw 000000

Gast #321441
Lesenswert?

hallo, versuche gerade per uart daten an meine serielle schnittstelle zu
senden jedoch kommen im terminal immer nur punkte an, ich habe es hier
mit einem beispielprogramm aus einem tutorial versucht, woran könnte es
liegen?

#include <avr/io.h>

#define F_CPU    3686400
#define BAUD    9600
#define UBRR_BAUD  ((F_CPU/(BAUD*16))-1)

/* USART initialisieren */
void uart_init(void);


int main(void)
{
  unsigned char buffer;

  /* USART initialisieren */
  uart_init();

  while (1)
  {

    /* Warten bis Daten empfangen wurden */
    while ( !(UCSRA & (1<<RXC)) )
      ;

    /* Empfangsregister auslesen */
    buffer = UDR;

    /* Warten bis der Sendepuffer frei ist */
    while ( !( UCSRA & (1<<UDRE)) )
      ;

    /* Daten in den Puffer schreiben und damit senden */
    UDR = buffer;
  }
}

/* USART initialisieren */
void uart_init(void)
{
  /* Baudrate einstellen ( Normaler Modus ) */
  UBRRH = (unsigned char) (UBRR_BAUD>>8);
  UBRRL = (unsigned char) UBRR_BAUD;

  /* Aktivieren von receiver und transmitter */
  UCSRB = (1<<RXEN)|(1<<TXEN);

  /* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}
Gast #321442
Lesenswert?

nimmst du nen MEGA ? dann mal die Fuse Bits kontrollieren. Bei mir lags
immer daran.

Und nimm am besten auch das HTerm Programm. Das stellt zu jedem
enpfangenen Byte 4 Ansichten dar(Ansi, Hex, Dez, Binär)
Gast #321443
Lesenswert?

hm fuse bits müssten passen, weil in assembler funktioniert das uart
senden problemlos, ich habe bereits ein terminal das verschiedene
ansichten hat, hm irgendwie sendet mir der atmega8 nur ..... ^^

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