RS232 Programm steht solange auf Empfang gewartet wird

Postby paul61 » Tue Nov 02, 2010 12:00 am

Hallo,

ich habe vor kurzem ein R8C/13 Board erhalten und möchte damit etwas "spielen" und programmieren.

Nun stehe ich vor folgendem Problem:
Es soll auf Zeichen an Rx reagiert werden, aber das Programm soll nicht in der Empfangsroutine stehen bleiben bis irgendwann einmal etwas kommt, also nebenbei noch andere Sachen machen.

Wie kann ich da vor gehen?

Z.B.
uchar com_rxd(void)
{
uchar data;
uchar dummy;
while (ir_s0ric == 0); //Wait for received data
ir_s0ric = 0; //Clear serial reception flag
data = u0rbl; // Get reception data
dummy = u0rbh; // Get error
re_u0c1 = 1; // Reception enabled
return data;
}
bringt mich nicht weiter, hier wird immer gewartet bis ein Zeichen kommt.
Wäre schön wenn mir jemand hierzu Tipps geben kann.
paul61
 
Posts: 1
Joined: Fri Jan 03, 2014 1:52 pm

Postby mikedek » Thu Nov 25, 2010 12:00 am

Hallo,
Du kannst entweder mit Interrupt arbeiten oder fragst ständig ab,
ob ein Zeichen da ist.
z.b.:
unsigned char zeichen_da_0(void)
{
unsigned char data;
unsigned char dummy;
if(ir_s0ric==0);//wait for received data
{
ir_s0ric=0;//clear serial reception flag
data = u0rbl; // Get reception data
dummy = u0rbh; // Get error
re_u0c1 = 1; // Reception enabled
return data;
}
return(0);
}
Bei Aufruf wird überprüft, ob ein Zeichen da ist.
Vieleicht hilft Dir das weiter. Wenn Du das Problem lieber mit Interrupt lösen möchtest, kannst Du ja nochmal anfragen.
mfg
Michael
mikedek
 
Posts: 7
Joined: Fri Jan 03, 2014 1:52 pm


Return to Das R8C-Projekt

Who is online

Users browsing this forum: No registered users and 1 guest

cron