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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.