www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik M32C über UART0 an PC


Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade ganz simpel vom M32C/83 über den UART0 irgendwas an
meinen PC (HyperTerminal) zu senden. Doch irgendwie klappt das nicht.
Ich denke mal, dass meine Konfiguration irgendwo hakt.

Bisher habe ich folgendes konfiguriert:

// Protection Register
PRCR = 0x02; // ?? xxxx 0010;
  // PRC1 --> Enables writing to PM0, PM1, INVC0, INVC1 registers

// Processor mode register 0
PM0 = 0x00;  // PM00+PM01 = 00 --> Single-Chip Mode

PRCR = 0x00; // xxxx 0000

// UARTi baud rate register (
clk_tmp = (CLOCK  1  16 / BAUD) - 1; /* Set the baud rate */
  // (f1/(TC*16))-1 = m; f1=30MHz, TC=9600Baud --> m=203
U0BRG = clk_tmp;

// UARTi transmit/receive mode register
U0MR = 0x05; // 00000101;
  // SMD0-2 = 101 --> UART mode, transfer data 8 bits long
  // CKDIR = 0 --> Internal Clock
  // STPS = 0 --> 1 Stop bit
  // PRY = x(0) --> Enabled when PRYE = 1
  // PRYE = 0 --> Parity disabled
  // IOPOL = 0 --> TxD, RxD i/o not switched

// Control Register 0 (CTS=Clear To Send; RTS=Request To Send)
U0C0 = 0x10; // 0001 x000: f1 */
  // CLK0=0+CLK1=0 --> Selects f1
  // CRS=0
  // CRD=1

// Control Register 1
U0C1 = 0x01; // 0000 x0x1

// Port Direction
PD6 = PD6 & 0xF8; // 11111000; // RxD0 = 0 --> Input
PD6 = PD6 | 0x08; // 00001000; // TxD0 = 1 --> Output
//---config - Ende----

Des Weiteren würde ich denken, dass ich das Function Select Register A0
(PS0) noch einstellen müsste. Doch da stürzt mir das Programm immer ab.

//PS0 = PS0 || 0x08; // 00001000; // setzen der '1'
//PS0 = PS0 && 0x08; // 11111000;

Zum Schluß wollte ich einfach einen Buchstaben verschicken:
U0TBL = 'H';

Ich bin mir auch gar nicht ganz sicher, was ich überhaupt alles
konfigurieren muss.
Über eure Hilfe wäre ich sehr dankbar.

Gruß Bastian

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wollte (habe) Dir 'ne Mail schreiben, ungültiger Empf.

Lutz

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah, mein Fehler, hast eine Mail.
Lutz

Autor: chrissy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist es ja mal gut!

Mich und wahrscheinlich alle anderen Forumsbesucher interessiert das
Problem, der Fehler ehh nicht die Bohne - absoluter Irrglaube, was den
meisten beim Stichwort 'Forum' (und nicht nur die, die mal Latein
genossen haben) einfällt.

kein Grund also für dich ausführlich, öffentlich zu schreiben!!!!! Das
wäre ja noch schöner, wenn jeder Infos abrufen könnte.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@chrissy
jo, gut gemeckert ;-)
Du hast völlig recht!
Nur, meine Scriptfiles, die ich versendet habe, sind nicht
zur Veröffentlichung gedacht (nicht kommentiert etc.).
Vieleicht hatte ich ja auch nur geschrieben, dass ich mich
mit Ihm über den M32C austauschen möchte?
Grüße
Lutz

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also ich habe nach weiterer langer Suche ein gutes Stück Code von
Dietmar in diesem wunderbaren Forum gefunden:
http://www.mikrocontroller.net/forum/read-1-44944.html#44944

Eigentlich habe ich auch alles so konfiguriert, jedoch habe ich eine
andere (ältere) Header-Datei eingebunden und benutzt.
Dietmar hat folgende eingebunden: sfr32c83.h
Darüber lassen sich die Bits der Register auch einzeln ansprechen, was
in meiner Headerdatei nicht möglich war.
Ich kann also leider nicht ganz direkt sagen, wodran es nun lag.

Wie oben zu sehen ist, habe ich das ganze in C programmiert. Welche
Headerdatei habt ihr denn eingebunden? Und welche habt ihr für die
Interrupts?

Danke und schöne Grüße
Bastian

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.