Atmega32PAPU Übertragungsprobleme

Gast #4468219
Lesenswert?

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);
  }
}
Gast #4468384
Lesenswert?

Der Tip mit den LEDs war schonmal ein Volltreffer. Ich Trottel hab 
schlichtweg vergessen, den externen Oszillator einzustellen.
Jetzt blinken die LEDs auch im Sekundentakt.

Gelöst ist das Problem aber noch nicht. Wenn ich eine 1 Sende, kommt 192 
an.

Ich habe das eben mit dem Code auf einer Atmega32 getetstet, mit 
angepassten Registern natürlich und da funktionierts. Der Terminal gibt 
mir genau das aus, was ich schicke...

Wie bekomm ich denn jetzt ohne grosse Rummrechnerei die INT Werte 
übertragen ?
Gast #4468462
Lesenswert?

Hallo Tom,

tom schrieb:
> 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.

Einen Atmega32PA-PU finde ich bei Atmel nicht.

Die neueren Atmega32A haben nur eine "A" angehängt.
http://www.atmel.com/devices/ATMEGA32A.aspx
Aber die haben alle nur ein Uart !
Gast #4468463
Lesenswert?

Hallo Tom,

tom schrieb:
> 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.

Einen Atmega32PA-PU finde ich bei Atmel nicht.

Die neueren Atmega32A haben nur ein "A" angehängt.
http://www.atmel.com/devices/ATMEGA32A.aspx
Aber die haben alle nur ein Uart !

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren