Forum: Mikrocontroller und Digitale Elektronik Mega64 Usart1 funktioniert nicht


von Jannik (Gast)


Lesenswert?

Hallo,

ich betreibe einen Mega64 mit 16Mhz Quartz und möchte den USART1 nutzen.
Aus lauter Verzweiflung habe ich jetzt schon den Beispielcode aus dem 
Datenblatt genommen. Wenn ich Breakpoints setze (z.b. wo ich das UBRR1L 
Register schreibe) bleibt die Software dort hängen, als ob es eine 
Endlosschleife ist. Irgendwas stimmt hier nicht?! Gibt es irgendwelche 
Fuses o.ä. die ich überlesen habe um den USART1 nutzen zu können? 
Übrigends benutze ich zum ersten Mal Studio 6 (vorher Version 4).

Vielen Dank für Infos!
Jannik

Hier der komplette Code (ist ja überschaubar).
1
#include <avr/io.h>
2
#define FOSC 16000000// Clock Speed
3
#define BAUD 9600
4
#define MYUBRR FOSC/16/BAUD-1
5
6
7
void USART_Init( unsigned int ubrr )
8
{
9
  /* Set baud rate */
10
  UBRR1H = (unsigned char)(ubrr>>8);
11
  UBRR1L = (unsigned char)ubrr;
12
  /* Enable receiver and transmitter */
13
  UCSR1B = (1<<RXEN1)|(1<<TXEN1);
14
  /* Set frame format: 8data, 2stop bit */
15
  UCSR1C = (1<<USBS1)|(3<<UCSZ10);
16
}
17
18
void USART_Transmit( unsigned char data )
19
{
20
  /* Wait for empty transmit buffer */
21
  while ( !( UCSR1A & (1<<UDRE1)) )
22
  ;
23
  /* Put data into buffer, sends the data */
24
  UDR1 = data;
25
}
26
27
28
void main( void )
29
{
30
31
  USART_Init ( MYUBRR );
32
  
33
    while(1)
34
    { 
35
    USART_Transmit('A');
36
    }
37
}

von Krapao (Gast)


Lesenswert?

Ja, da gibt es "ATmega103 Compatibility Mode Selected by a Fuse". Die 
kastriert den AVR u.a. auf eine UART.

von Jannik (Gast)


Lesenswert?

Vielen Dank,

das wars :) Komische Werkseinstellung haben die.....

von spess53 (Gast)


Lesenswert?

Hi

>das wars :) Komische Werkseinstellung haben die.....

Solche ollen Controller nimmt man ja auch nicht mehr.

MfG Spess

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.