Forum: Mikrocontroller und Digitale Elektronik Zu geringe Baudrate


von Starter (Gast)


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.

von johnny.m (Gast)


Lesenswert?

Der Fehler ist in Zeile 42 in Deinem Programm. Aber keine Panik! Das
wird schon wieder...

von Uaaaahhhhh (Gast)


Lesenswert?

Wohl nen Clown gefrühstückt ...

von Daniel F. (c4vl3r)


Lesenswert?

nein die witzseite aufgeschlagen ;-)
was er damit sagen möchte: wenn du deinen code mitposten würdest, wäre
die fehleranalyse wesentlich einfacher....

von Starter (Gast)


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;
}

von johnny.m (Gast)


Lesenswert?

Genau das meinte ich. Hab aber auch meinen sarkastischen heute...

von johnny.m (Gast)


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!

von Starter (Gast)


Lesenswert?

Vielen Dank,
das war die Lösung,
so komm ich erst mal weiter ...

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.