Simulation problem joe man Hi All, When simulating an interupt from serial port RX0, I cannot succeed in affecting SBUF0 to a local variable, the watch window shows this variable to 0 even if SBUF0 is set.
Here is my code :
static void serial_port_0_isr (void) interrupt COM0_VECT { unsigned char data_received; if (RI != 0) { RI = 0; data_received = SBUF0; ... } }
hi i have the same problem like you i use the msc1210 microntroller.could you tell me how you did to solve your problem.think's
yes i now that there is two SBUF actually independent register in the 8051 architecture.
you said: <Please also read the instructions on how to post source code - they're right there immediately above the window where you type your message!>
where can i find the instructions on how to post source code?
thank's for your answer
PS: do you speak french? it will be easy for me to write in french!
do you speak french? it will be easy for me to write in french!
je ne comprenez pas
je suis pas trop a l'aise avec l'anglais. en fait mon probleme c'est que je parviens a envoyer des donnees dans SBUF mais quand j'essai de lire son contenu via une variable je trouve rien je te mets en bas de page mon bout de code merci d'avance
/*******************************************************/ // TRANSMISSION // /*******************************************************/
void transmission(char donnee_emise) { SBUF0=donnee_emise; //Serial Port 0 input TXD=donnee_emise while(TI==0)continue; //tant que TI=0 on reste la { donnee_emise=0; TI=0; //clear TI flag } } /*******************************************************/ // FIN TRANSMISSION // /*******************************************************/
//-------------------------------------------------------
/*******************************************************/ // RECEPTION // /*******************************************************/ char reception(void) { donnee_recue=SBUF0; //Serial Port 0 Output RXD=donne_recue while(RI==0)continue; //tant que RI=0 on reste la { RI=0; //clear RI flag } return (donnee_recue); }
Que?
je suis un rock star
en fait c'est moi qui suis pas a l'aise avec l'anglais. mon probleme est quand je charge SBUF0 par donnee_emise ca passe c-a-d a la fin de la transmission TI=1 ca c'est la transmission maintenant pour la reception quand j'essaie de mettre le contenu de SBUF0 dans donnee_recue j'y trouve rien en d'autre terme RI ne passe jamais a 1.
void transmission(char donnee_emise)
{ SBUF0=donnee_emise;
while(TI==0)continue;//tant que TI=0 on reste la
{
donnee_emise=0;
TI=0;
} }
char reception(void)
donnee_recue=SBUF0;
while(RI==0)continue;//tant que RI=0 on reste la
RI=0; //clear RI flag
}
return (donnee_recue);