Gast
#4468219
Hallo,
ich weiss nicht mehr weiter: Ich habe eine Atmega32PAPU mit zwei
seriellen Ports und habe mich an die Codebeispiele aus dem Datenblatt
gehalten, bekomme aber immer nur 80 00 im Terminalprogramm ausgeworfen.
Wenn ich "11" schicke dann erhalte 80 80 00.
Hat jemand eine Idee, was ich falsch mache ?
#ifndef F_CPU
#define F_CPU 8000000UL
#endif
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <string.h>
#include <stdlib.h>
void USART_Init( unsigned int baud )
{
// Set baud rate
UBRR0H = (unsigned char)(baud>>8);
UBRR0L = (unsigned char)baud;
// Enable receiver and transmitter
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
// Set frame format: 8data, 2stop bit
UCSR0C = (1<<USBS0)|(1<<UCSZ00);
}
void usart_putint(int zahl)
{
while(!(UCSR0A & (1<<UDRE0)));//warten auf Datenregister empty
UDR0=zahl;
}
void main()
{
USART_Init(51); // 51 = 9600
while (1)
{
usart_putint(44);
}
}