Forum: Mikrocontroller und Digitale Elektronik wal wieder ein USART Problem


von Chris T. (chris0086)


Lesenswert?

Hallo Leute ich habe mal wieder ein Problem mit dem USART.
Controller: atmega 162
Quarz: 7,3728MhZ
Das ist mein Code er soll einfach in einer Schleife an den USart1 was 
ausgeben
1
int main(void)
2
{
3
4
UCSR0B |= (1<<TXEN0);                // USART1 TX einschalten
5
UCSR1B |= (1<<TXEN1);                // USART2 TX einschalten
6
UCSR0B |= (1<<RXEN0);
7
UCSR1B |= (1<<RXEN1);
8
UCSR0C |= (1<<URSEL0)|(3<<UCSZ00);    // USART1 Asynchron 8N1
9
UCSR1C |= (1<<URSEL1)|(3<<UCSZ10);    // USART2 Asynchron 8N1
10
11
UBRR0H = 0x2f >> 8;
12
UBRR1H = 0x2f >> 8;
13
UBRR0L = 0x2f;
14
UBRR1L = 0x2f ;
15
16
while (!bit_is_set(UCSR0A, UDRE0));
17
18
//Timer initialisieren
19
    TCCR0 |= (1<<CS00)|(1<<CS02);
20
    TIMSK =(1<<TOIE0);
21
    sei();//interrupts aktivieren
22
23
24
25
26
   while(1)
27
   {
28
     USART1_Transmit(0x56); //Sim
29
     USART2_Transmit('g'); //FR
30
   }
Den wert für UBRR hab ich von einem UARt Calculator errechnen lassen.

Aber an meinem TerminalProgramm kommt nur: € € \0  raus und das 
wiederholt sich immer.
Quarz ist aktiviert.
Weiterhin ist bei den Fuses Divide clock by 8 internally; [CKDIV8=0] 
aktiviert.
Als Quarz Fuse hae ich diese genommen:Ext. Crystal Osc.; Frequency 
3.0-8.0 MHz; Start-up time: 16K CK + 65 ms; [CKSEL=1101 SUT=11]

Ist das vielleciht der Fehler im System?
Über einen Tip würde ich mich sehr freuen.
Bis dahin noch einen schönen Männertag!
HAt jemand ne Ahnung?

von g457 (Gast)


Lesenswert?

> Weiterhin ist bei den Fuses Divide clock by 8 internally; [CKDIV8=0]
> aktiviert.

<hust>Willst Du das wirklich</hust>. Ich hab dein UBRR* nicht 
nachgerechnet, aber dein Quarz wäre ein so schöner Baudratenwelcher..

HTH

von spess53 (Gast)


Lesenswert?

Hi

>Weiterhin ist bei den Fuses Divide clock by 8 internally; [CKDIV8=0]
>aktiviert.

Das solltest du deaktivieren.

MfG Spess

von Chris T. (chris0086)


Lesenswert?

Danke für den Tip funzt alles, SUPER.
Jetzt erstmal nen Bier...

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.