RS232 sous UART0

Postby gibi » Wed May 30, 2007 12:00 am

Bonjour,

J'ai un programme qui me donne une liaison RS232 sous interruption.
La configuration est la même que la platine Elektor
Le problème est que l'interruption semble ne fonctionner qu'une fois.
Le programme me retourne 1 caractère puis le R8C se bloque.


Le Sec30.inc

.glb _UART0_Receive_int
.lword _UART0_Receive_int ; vector 18

#pragma UART0_Receive_int;

void uart_init(void)
{
/* positionnement des registres I/O */
/* Horloge synchrone du port série */
p1 = p1 | 0x10;
pd1 = pd1 | 0x10;
pd1 = pd1 & 0xdf;
u0mr= 0b00000101; // UART-Mode 8bit

u0brg = 130-1; // 9600 Bauds
u0c0 = 0b00000000; // f1SIO selectet
ilvl0_s0ric = 1;
ilvl1_s0ric = 0;
ilvl2_s0ric = 1; //prioritylevel 5

u0c1 = 0b00000100; //reception enable
asm("FSET I"); /* Interrupt enable */

}

void host_write(char* msg_string, char cNumOfChar)
{
char i;

for(i=0; i< cNumOfChar; i++)
{// This loop reads in the text string and
while(ti_u0c1 == 0); // puts it in the UART 0 transmit buffer
u0tbl = msg_string[i];
te_u0c1 = 1;
}
}

void UART0_Receive_int(void)
{
unsigned char dummy, U0_in ;

ir_s0ric = 0;
U0_in = (char) u0rbl; // read in received data
dummy = u0rbh;
re_u0c1 = 1;
host_write(&U0_in,1);
}

gibi
 
Posts: 104
Joined: Fri Jan 17, 2014 4:36 pm

Postby gibi » Wed May 30, 2007 12:00 am

Bonjour,

Je remets cela sur le tapis. Malgré tous mes efforts je ne trouve toujours pas la solution à ma routine ci-dessus.
Faut-il en plus associer un INT ou ce code devrait-il fonctionner ainsi ?

Merci pour votre aide,
Jean
gibi
 
Posts: 104
Joined: Fri Jan 17, 2014 4:36 pm

Postby nlc » Wed May 30, 2007 12:00 am

Es tu sûr que le pragma que tu as donné defini bien la fonction UART0_Receive_int() comme une fonction interruption ?

Faudrait pas plutot mettre :
#pragma interrupt UART0_Receive_int;

Il semble que tu as oublié le "interrupt", auquel cas le compilo ne considere pas la fonction UART0_Receive_int() comme une fonction d'interruption et le retour de cette fonction ne reactive pas les interruptions, d'ou le blocage.
nlc
 
Posts: 109
Joined: Fri Jan 17, 2014 4:37 pm

Postby gibi » Wed May 30, 2007 12:00 am

Merci, c'est vraiment la faute de débutant !
Oui avec interrupt cela fonctionne parfaitement.

Encore merci,
Jean.
gibi
 
Posts: 104
Joined: Fri Jan 17, 2014 4:36 pm


Return to R8C/13 (01-2006)

Who is online

Users browsing this forum: No registered users and 1 guest

cron