www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART mega32 ... die 100000te


Autor: Neubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey,

serielle schnittstelle des mega32 initialisieren :



//---- enable receiver and transmitter + receive interrupt ----//
  UCSRB = BIT7 | BIT4 | BIT3;   -> OK

//------------- set baud rate ---------------------------------//
  UBRRH = 0x00;     // 115200 baud @ 11.0592MHz
  UBRRL = 0x05;                 -> OK

//------------- set frame + data format -----------------------//
  UCSRC = (BIT7 | BIT2 | BIT1);      // 8data + 1stop (0x86)
-->>>>> .. das sch... register lässt sich nicht setzen



emulator mkII : wenn ich das datenformat (register UCSRC) setzen will, 
wird der wert nicht ins register übernommen. diese register werden 
unmittelbar nach dem reset gesetzt (keine int-requests, keine timer, 
...)
habe schon alle möglichen variationen probiert ... ohne erfolg !!!!


vielleicht kann mir jemand helfen ?!?


thx
neubi

Autor: Fabian B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> //------------- set frame + data format -----------------------//
>  UCSRC = (BIT7 | BIT2 | BIT1);

ich hoffe mal hinter Bit7 steht dann (per define oder so) (1<<7) weil 
wenn da nur die 7 hintersteht machst du nix anderes als
(7 | 2 | 1)
und das ist sicher nicht das was du willst.

Gruß
Fabian

Autor: Neubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define  BIT0                 0x01
#define  BIT1                 0x02
#define  BIT2                 0x04
#define  BIT3                 0x08
#define  BIT4                 0x10
#define  BIT5                 0x20
#define  BIT6                 0x40
#define  BIT7                 0x80


... und der dreck geht noch immer nicht :) ...

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss es denn kompliziert sein ?
UCSRC = (BIT7 | BIT2 | BIT1);
wird zu :
UCSRB = 0x83;

Z.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer oder was ist emulator mkII?

Oliver

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neubi wrote:
> #define  BIT0                 0x01
> #define  BIT1                 0x02
> #define  BIT2                 0x04
> #define  BIT3                 0x08
> #define  BIT4                 0x10
> #define  BIT5                 0x20
> #define  BIT6                 0x40
> #define  BIT7                 0x80
>
>
> ... und der dreck geht noch immer nicht :) ...

Nicht, dass die Bits schon als Makro in der io.h (avr-gcc 
vorrausgesetzt) mit den Namen aus dem Datenblatt vorhanden wären, und 
die Benutzung dieser, das Programm auch übersichtlicher gestalten würde.

>  UCSRC = (BIT7 | BIT2 | BIT1);      // 8data + 1stop (0x86)
Bis auf die total sinnfreien Bezeichnungen stimmt es.

Wie wäre es mit etwas mehr Code?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
//------------- set frame + data format -----------------------//
  UCSRC = (BIT7 | BIT2 | BIT1);      // 8data + 1stop (0x86)
-->>>>> .. das sch... register lässt sich nicht setzen

Das was du da machst ist völlig in Ordnung.
Brenn das mal in einen ATMega32.
Wenn es funktioniert schmeiss deinen Emulator weg.

Holger

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast natürlich im Datenblatt die geschichte mit der I/O Adresse von 
UCSRC und UBRRH gesehen und natürlich in der Hilfe für das AVR-studio 
(in der auch ALLE anderen Atmel-sachen die zu AVRs gehören beschrieben 
sind) gesehen, dass man mit dem JTAG das UCSRC GAR NICHT lesen kann (hab 
in der Hilfedatei nach "UCSRC" gesucht/suchen lassen...). steht unter 
"special considerations"-> "JTAG Interface specific considerations"

sry, bin ein bischen sarkastisch und zu belesen ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.