Page 1 of 1

Frage zur UART0 Terminaldatenausgabe!!

PostPosted: Mon Jan 14, 2019 3:27 pm
by chahath
Hallo,

ist folgendes Grundgerüst richtig?
Oder fehlen noch Variablendefinitionen etc.? Wenn ja welche?
Wo soll return data; hinspringen? Ich finde keine Funktion data
Und dann reicht an irgendweiner Stelle im Code der Befehl

sendTxd0 (receiveRxd0(); ?

Würde mir dann zum Bsp. an der Stelle nach einer Formel das Ergebnis der Formel ins Terminal übertragen?

maxlimit = 58*ad
sendTxd0 (receiveRxd0();


void UART0_init (void) https://www.minimilitia.mobi/ https://www.applock.ooo/ https://www.7zip.vip/

{
p1 = p1 | 0x10;
pd1 = pd1 | 0x10;
pd1 = pd1 & 0xdf;
u0mr = 0x05;
u0c0 = 0x00;
u0rrm = 0;
u0brg = 130-1;
re_u0c1 = 1;
}

void sendTxd0 (unsigned char data)
{
while (ti_u0c1 == 0);
u0tbl = data;
te_u0c1 = 1;
}

unsigned char receiveRxd0 (void)
{
unsigned char data;
unsigned char dummy;
while (ir_s0ric == 0);
ir_s0ric = 0;
data = u0rbl;
dummy = u0rbh;
re_u0c1 = 1;
return data;

Re: Frage zur UART0 Terminaldatenausgabe!!

PostPosted: Mon Jan 14, 2019 5:22 pm
by wollekr
Hallo,

Nein. Der Code stammt offensichtlich aud der Elektor 2/2006. Dort ist beschrieben, dass "sendTxd0 (receiveRxd0());" dass mit receiveRxd0() empfangene Zeichen mittels sendTxd0() zurückschickt, also echoed.

Wenn Du maxlimit ausgeben willst, so musst Du den Wert erst in ASCII umwandeln und dann jedes einzelne Zeichen mit sendTxd0() ausgeben.

In Etwa so:

#include <stdio.h> // Für sprintf()

int maxlimit ;
char buffer[8];
.
.
void main(void)
{
int i;
.
.
sprintf(buffer, "%d", maxlimit); // z.B. Wert in ASCII umwandeln
for (i=0; buffer[i] != '\0'; i++) // Einzelnen Zeichen ausgeben.
sendTxd0(buffer[i]);
sendTxd0('\r'); sendTxd0('\n'); // CR+LF ausgeben.

BTW: u0brg = 130-1; bestimmt die Baudrate. Wie im Artikel angegeben ergibt das 9600 Baud bei einem Prozessortakt von 20MHz. Dazu muss der R8C/13 aber entprechend initialisiert werden.

Und Du weißt auch, dass Du Dich in alten Kram einarbeitest, denn der R8C/13 ist abgekündigt und die Tools für die Entwicklung (HEW, C-Compiler usw.) werden schon längere Zeit nicht mehr weiterentwickelt?