Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/07/10 11:44
Modified:
  08/07/10 11:47

Read: times


 
#177842 - yes, but
Responding to: ???'s previous message
while(!TI){;}   /* waiting for any previous transmission to finish */
TI = 0;		/* clr ti since we are going to transmit again

yes, but, I would not recommend it
the above inside the ISR may make the main 'hang' for a while
anything inside an ISR that involves waits should be avoided

I would do as follows in the RI
if (TI)
send a byte
else
set flag

then in the 'standard' if TI routine
if flag
send a byte
clr flag

ALSO, and a REAL bug: (to find it you only need these lines)

if(TI) WHAT HAPPENS IF TI IS SET WHEN YOU GET HERE ???
// I want YOU to figute out, if not I'll answer tomorrow
	{	
		TI = 0;	    /* clr ti since we are going to transmit again */
	}
	if(RI)					
	{
		RI = 0;	    /* clear ri to wait for next character */
		buf = SBUF; /* store the character from sbuf into temp buffer */

		if(buf == 0xAA)/* IF THE RECEIVED VALUE IS 0xAA */ 
		{
			while(!TI){;} 

Erik

List of 17 messages in thread
TopicAuthorDate
Writing to SBUF in Serial Routine            01/01/70 00:00      
   Sure...            01/01/70 00:00      
   yes, but            01/01/70 00:00      
      TX inside serialint            01/01/70 00:00      
         Pardon??            01/01/70 00:00      
            Pardon accepted            01/01/70 00:00      
               Still a Missing Part of Scheme            01/01/70 00:00      
            Pardon            01/01/70 00:00      
               Will that work in 'C' ?            01/01/70 00:00      
                  Assembler if you want            01/01/70 00:00      
                     Why send_char?            01/01/70 00:00      
                        Why send_char            01/01/70 00:00      
                           You missed the point            01/01/70 00:00      
                              Call a routine from an interrupt            01/01/70 00:00      
                                 Still misunderstanding            01/01/70 00:00      
                                 misunderstandings            01/01/70 00:00      
      what happened to the OP?            01/01/70 00:00      

Back to Subject List