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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/14/09 12:58
Read: times


 
#161505 - the solution
Responding to: ???'s previous message
In case anyone else comes across this problem, I found the solution is NOT to clear TI bit in the ISR. The OutChar routine polls TI, and clears it once it is set. It works perfectly.

Main:
	call Test
	jmp $		; endless
;------------------------------------------------------------
;serial interrupt
Ser_Int:
	jb TI, ExitISR	; ignore if it is a transmission
	jnb RI,ExitISR	; test if it is a reception
	clr RI		; clear reception flag for next reception
	mov A,SBUF		; read data from uart
ExitISR:
	reti
;------------------------------------------------------------
Test:
	mov	dptr,#Test_String
	call	OutStr
	ret
;********************************************************************
; Send a null terminated string out serial port
;********************************************************************
OutStr:
	clr a
      movc a,@a+dptr	; get character
      jz exit		; stop if char = null
	call	OutChar
      inc dptr		; point to next char
      sjmp OutStr
exit:
	ret

Test_String:
DB	'This is a Test',0dh,0ah,0
;-----------------------------------------------------------------
OutChar:
	mov	sbuf,a	;Load SBUF
	jnb	TI,$		;wait for last bit to transfer
	clr	TI		;get ready for next byte	
	RET			;

 



List of 23 messages in thread
TopicAuthorDate
serial interrupt?            01/01/70 00:00      
   Your Problem            01/01/70 00:00      
      still not working            01/01/70 00:00      
         you need to flag somehow the end of transmission            01/01/70 00:00      
            reply to Jan            01/01/70 00:00      
   Several            01/01/70 00:00      
      To Hans            01/01/70 00:00      
         And my reply to Charles            01/01/70 00:00      
   no interrupts works            01/01/70 00:00      
   the solution            01/01/70 00:00      
      Isn't that what Hans said?            01/01/70 00:00      
      Perfectly????? Prolly should look again.            01/01/70 00:00      
         Got to look ahead...            01/01/70 00:00      
         Another thing to consider            01/01/70 00:00      
            reply to Andy Neil            01/01/70 00:00      
         reply to Michael Karas            01/01/70 00:00      
      why is this a bad idea            01/01/70 00:00      
         Exactly why not perfect !!!            01/01/70 00:00      
         response to Jan Waclawek            01/01/70 00:00      
            interrupts forever            01/01/70 00:00      
            nope            01/01/70 00:00      
               Re: Erik            01/01/70 00:00      
   if you HAVE to mix ...            01/01/70 00:00      

Back to Subject List