Zu geringe Baudrate

Gast #353512
Lesenswert?
• ▲
▼
Hallo,
ich benutze einen Atmega16L,
Takt wird über FPGA erzeugt und
an XTAL1 zugeführt, XTAL2 NC.
Nun bekomme ich eine Baudrate die zwischen 20 und 30 Hz liegt,
hat einer ne Ahnung was ich falsch mache?
Die CKSEL hab ich mit Ponyprog auf "0000" sprich lauter Häkchen
gesetzt.
Gast #353516
Lesenswert?
• ▲
▼
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#define FOSC 8000000
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1


void USART_Init(unsigned int ubrr)
{
  UBRRH = (unsigned char) (ubrr>>8);
  UBRRL = (unsigned char) ubrr;

  UCSRB = (1<<RXEN) | (1<<TXEN);

  UCSRC = (1<<USBS) | (3<<UCSZ0);
}

void USART_Transmit(unsigned char data)
{
  while(!(UCSRA & (1<<UDRE))) ;

  UDR = data;
}

unsigned char USART_Receive(void)
{
  while(!(UCSRA & (1<<RXC)));

  return UDR;
}


int main (void)
{

  unsigned char data='h';
  USART_Init(MYUBRR);
  while(1){
    _delay_ms(50);
    USART_Transmit(data);
    }

  return 0;
}
Gast #353518
Lesenswert?
• ▲
▼
Schau Dir im Datenblatt auf Seite 160 mal den Abschnitt 'Accessing
UBRRH/UCSRC Registers' durch. Du sprichst die Register falsch an. Die
haben die selbe Adresse und müssen über das URSEL-Bit selektiert
werden!

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.